关于#c语言#的问题:用递归函数程序怎么写

问题描述:

1+(1+2)+(1+2+3)+……(1+2+3+……n)用递归函数程序怎么写?


include<stdioh>
main()
{
int i=5;//递归次数
int sum;
sum=fun(i);
printf("%d");
return 0;
}
int fun(int i)
{
static int n=1;
int t,s=1;
if(n<=n)
{
t=n++;
s=t+n;
fun(i);
}
else return s;
}

供参考:

//1+(1+2)+(1+2+3)+……(1+2+3+……n)用递归函数程序写

#include<stdio.h>
int fun(int n)
{
    if(n==1)
       return 1;
    else
       return n+fun(n-1);
}
int main()
{
    int n,i,sum=0;
    scanf("%d",&n);
    for(i=n;i>=1;i--)
            sum+=fun(i);
    printf("%d",sum);
    
    return 0;
}

同学,可以这样做

#include<stdio.h>
int sumsum(int n){
    int s, i;
    if(n==1)return 1;%给定递归初始值
    if(n>1){
        s = 0;
        for(i=1; i<=n;i++)s+=i;
        s+=sumsum(n-1);//这里就是用了递归的思想
        return s;
    }
}
int main()
{
int num=3;
printf("%d",sumsum(num));//调用
}

结果比如n=3时:

10