c语言之算法初步(母牛的故事&&斐波那契兔子数列)
1.有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
#include<stdio.h>
int f(int a)
{
if(a<=1)
return 1;
else if(a==2)
return 2;
else if(a==3)
return 3;
else if(a==4)
return 4;
else
return f(a-1)+f(a-3);
}
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
printf("%d\n",f(a));
return 0;
}
2.有一只兔子,从第三年开始每年生一只兔子,每只小兔从第3年每年生一只兔子。请编程实现在第n年的时候,共有多少只兔子?
#include<stdio.h>
int f(int a)
{
if(a<=2)
return 1;
else
return f(a-1)+f(a-2);
}
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
printf("%d\n",f(a));
return 0;
}
递归算法在c语言应用中还是比较实用的,特点是代码简单,单问题是要求理解。刚开始接触递归算法,做个记录。。。

浙公网安备 33010602011771号