A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2016-9-17 21:10  /  831 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用C语言写的,但是和java没有啥区别,应该能看得懂,结果832040


[C] 纯文本查看 复制代码
#include <Windows.h>
#include <stdio.h>

/*
	将个数也作为参数传入递归函数,第一次传入2,因为第一次要计算第三个值
	每次进到递归函数中先计算传入的两个值将和保存下来(次数只加一,不参与运算),
	然后将传入的参数的后一个值和之前保存的和作为参数调用递归,
	每次都将次数与30做判断,最后满足返回和
*/
//递归叠加函数
//参数i,j:将要相加的值,
//参数number:个数
int add(int i,int j,int Number)
{
	//计算两数之和,将和保存下来
	int Sum=i+j;

	//个数相加
	Number++;

	//如果是第30位开始返回,返回之前保存的和
	if(Number==30)return Sum;

	//否则进入递归继续相加,但是传入的参数是 传入的“将要相加的值”的后者,还有个数
	int Total=add(j,Sum,Number);

	//最后返回总和
	return Total;
}
int main()
{
	//调用递归叠加函数,从1,1开始计算,将要计算第三个值,所以传入2
	//并打印
	printf("%d",add(1,1,2));

	system("pause");
	return 0;
}
回复 使用道具 举报
好吧,2L的和我的思路相反的,推荐他的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马