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语言应用中还是比较实用的,特点是代码简单,单问题是要求理解。刚开始接触递归算法,做个记录。。。