请问用递归法求一到n的和怎么求,我这样为什么不对呢?

来源:5-8 递归函数(二)

qq_小明_60

2016-04-06 19:44

#include<stdio.h>

int main()

{

int a,n,sum=0;

scanf("%d",&n);

for(a=1;a<=n;a++)

sum+=s(a);

    printf("%d",sum);

return 0;

}

int s(int x)

{int y,n;

if(x==0||x==1)

y=1;

else

y=s(n-1)*n;

return(y);

}


写回答 关注

1回答

  • iceluna
    2016-04-06 21:19:59
    已采纳

    用递归就不要用for。命名习惯也不好,但是我懒得改了。

    #include<stdio.h>

    int main()

    {

    int a,n,sum=0;

    scanf("%d",&n);

    s(n);

    printf("%d",sum);

    return 0;

    }

    int s(int x)

    {

    if(x==1)

      return 1;

    else

      return s(x-1)+x;

    }


    icelun... 回复qq_小明_...

    啊是,那句应该是sum = s(n);

    2016-04-13 21:12:57

    共 3 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题