注册 登录
编程论坛 C++教室

递归函数中间的一个问题

mengni0219 发布于 2013-10-29 11:42, 608 次点击
用递归函数求1+3+5+。。。+99.
#include<iostream>
using namespace std;
int sum(int n)
{
    int sum=0;
    if(n==1)
       sum=1;
    else
       sum=n+sum(n-2);(这句话有错误,递归函数中这一句我总是理解不好,请指导!)
    return sum;
}
int main()
{
    cout<<sum(99)<<endl;
    return 0;
}
9 回复
#2
peach54602013-10-29 12:19
思路是什么?
先说说你的思路...
#3
qunxingw2013-10-29 12:24
找出n-1项和n项的关系
#4
nba1990442013-10-29 12:27
知道问题了吗?你思路都是对的,只是函数命名和你期中的一个变量命名冲突了!sum 能这样吗?把函数名改为Sum吧!
#5
在这里爬起2013-10-29 13:43
程序代码:
#include<iostream>
using namespace std;
int sum(int n)
{
    int c=0;
    if(n==1)
       c=1;
    else
       c=n+sum(n-2);
    return c;
}
int main()
{
    cout<<sum(99)<<endl;
    return 0;
}
你的sum=n+sum(n-2)是有问题的,sun是一个函数,他需要参数,
#6
苑天尤2013-10-29 13:55
//用递归函数求1+3+5+。。。+99.
 #include<iostream>
 using namespace std;
 int sum(int n)
 {
     int su=0;
     if(n==1)
        su=1;
     else
     su=2*n-1+sum(n-1);//(这句话有错误,递归函数中这一句我总是理解不好,请指导!)
     return su;
 }
 int main()
 {
     cout<<sum(2)<<endl;
     return 0;
 }
#7
mengni02192013-10-31 19:27
回复 2楼 peach5460
问题已经解决了,谢谢你哦~
#8
mengni02192013-10-31 19:29
回复 5楼 在这里爬起
恩,我就是这么改正的,已经调试出来了,谢谢!
#9
mengni02192013-10-31 19:30
回复 4楼 nba199044
呵呵,十分感谢啊,我自己也发现这个问题了呢~
#10
sh3166301032013-11-09 20:52
1