问答详情
源自:5-8 递归函数(二)

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

#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);

}


提问者:qq_小明_60 2016-04-06 19:44

个回答

  • 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;

    }