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

posted @ 2010-12-24 16:19  若风之觞  阅读(5689)  评论(1编辑  收藏  举报