1、求1-100的和
f(1)=1
f(2)=2+1=2+f(1)
f(3)=3+2+1=3+f(2)
f(4)=4+3+2+1=4+f(3)
...
f(100)=100+99+...1=100+f(99)
f(x)=x+(x-1)...+1
#include<stdio.h>
int work(int i)
{
if(i==1)
{
return 1;
}
return i+work(i-1);
}
void main()
{
printf("%d\n",work(100));
}
2、求5的阶乘
#include<stdio.h>
int work2(int i)
{
if(i==1)
{
return 1;
}
return i*work2(i-1);
}
void main()
{
printf("%d\n",work2(5));
}
3、求前n项的阶乘和
#include<stdio.h>
int work3(int i)
{
if(i==1)
{
return 1;
}
return work2(i)+work3(i-1);
}
void main()
{
printf("%d\n",work3(3));
}
4、递归打印菲波拉契数
菲波拉契数,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
#include<stdio.h>
int work4(int i)
{
if(i==1)
{
return 0;
}
if(i==2)
{
return 1;
}
return work4(i-1)+work4(i-2);
}
void main()
{
printf("%d\n",work4);
}