首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于递归的有关问题

2014-01-06 
关于递归的问题练习:用递归的方法求整数1…n的前n项和要求使用递归算法。以下是我的代码,输出结果总是1,求教

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

热点排行