用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;
} |