关于递归的问题
练习:用递归的方法求整数1…n的前n项和
要求使用递归算法。
以下是我的代码,输出结果总是1,求教各位,代码哪里出错了?
递归算法在编写时应秉持怎样的思路?
/*使用递归方法求整数1....n的前n项和*/
#include <stdio.h>
#include <math.h>
#include <conio.h>
int sum(int m)
{
if(m=1)
return 1;
else
return sum(m-1)+m;
}
int main()
{
int n;
printf("please input n:");
scanf("%d",&n);
printf("%d",sum(n));
getch();
}
[解决办法]
第推公式
S1 =1 //n=1
Sn = Sn-1 //n=2,3,4,......
函数
int sum(int n)
{
if(n = 1)
return 1;
else
return sum(n - 1)+ n;
}
S-->sum
n-->n
就是一个简单的替换。
递归训练的时候,可以这么做,不过写代码时,不要这么干
这种简单的递推关系,没有必要递归
[解决办法]
没有什么问题,就是if少了个等号