作业一:
递归实现n的阶乘
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int fun(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*fun(n-1);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("请输入n的值:");
scanf("%d",&n);
int a=fun(n);
printf("%d的阶乘=%d\n",n,a);
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/2a34b72c89b9f533b6144c4daed0d456.png)
作业二:
递归计算1-n的和
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int fun(int n)
{
if(n==1)
{
return 1;
}
else
{
return n+fun(n-1);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("请输入n的值:");
scanf("%d",&n);
int sum=fun(n);
printf("1-%d的和为:%d\n",n,sum);
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/cca0f4e6f35e41fdec1b0c4865485269.png)
作业三:
递归实现斐波那契,输出1-n项的值
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int fun(int n)
{
if(n==1||n==2)
{
return 1;
}
else
{
return fun(n-1)+fun(n-2);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("请输入n的值:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
printf("%d\t",fun(i));
}
printf("\n");
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/58ed9e8702b03a1d945bdcb0e72efac0.png)