C 练习实例11 斐波那契数列

来源:互联网 发布:淘宝上的宠物狗能买吗 编辑:程序博客网 时间:2024/05/30 23:03

          • 递归
          • 非递归

1.递归
/*C 练习实例11题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,      小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)斐波那契数列。*/#include <stdio.h>#define MAX 40int fibonaci(int i){    if(i == 0)    {        return 1;    }    if(i == 1)    {        return 1;    }    return fibonaci(i-1) + fibonaci(i-2);}int main(){    int i;    for(i=0; i<MAX; i++)    {        printf("%d\t",fibonaci(i));        if((i+1)%8 == 0)        {            printf("\n");        }    }    return 0;}
2.非递归
/*斐波那契数列*/#include <stdio.h>#define N 40int main(){    int i, j, t, num;    i = 0; j = 1; t = 0; num = 1;    while(num <= N)    {        printf("%10d ",j);        t = j;        j = i + j;        i = t;        if(num%8 == 0)        {            printf("\n");        }        num++;    }    return 0;}
0 0
原创粉丝点击