关于#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