读书人

关于递归的有关问题

发布时间: 2014-01-06 15:53:52 作者: rapoo

关于递归的问题
练习:用递归的方法求整数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少了个等号

读书人网 >C语言

热点推荐