作业
1>递归实现n的阶乘
2>递归计算1-n的和
3>递归实现斐波那契,输出1-n项的值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Jiecheng(int n);
int He(int i);
int Fb(int j);
int main(int argc, const char *argv[])
{
int n;
printf("=======================================\n");
printf("计算一个数的阶乘\n");
printf("请输入一个数:");
scanf("%d",&n);
int m=Jiecheng(n);
printf("%d的阶乘是%d\n",n,m);
printf("\n");
printf("=======================================\n");
int i;
printf("递归计算1-n的和\n");
printf("请输n的值:");
scanf("%d",&i);
int sum=He(i);
printf("1-%d的和是%d\n",i,sum);
printf("\n");
printf("=======================================\n");
int j;
printf("用递归实现斐波那契\n");
printf("请输入一个项数:");
scanf("%d",&j);
for(int i=1;i<=j;i++)
{
printf("%d\t",Fb(i));
}
return 0;
}
int Jiecheng(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*Jiecheng(n-1);
}
}
int He(int i)
{
if(i==0)
{
return 0;
}
else
{
return i+He(i-1);
}
}
int Fb(int j)
{
if(j==1 || j==2)
{
return 1;
}
else
{
return Fb(j-1)+Fb(j-2);
}
}
结果:
