费波那西数列运算扩展试验,理想化求兔子

#include<stdio.h>
#include<windows.h>

//有一对兔子,出生后没3个月生一对兔子,小兔子长到三个月后每月又生一对兔子,如果兔子不死,求四十个月后兔子总数
void test1()
{
    //根据绘制表格得到每个月兔子总数,第一个月总数为f1,第二个月为f2,第三个月往后依次等于上一个月加前一个月的兔子数
    long int f1, f2;
    int i;
    f1 = 1; f2 = 1;
    for(i = 1; i <= 20; i++)
    {
        printf("%20ld%20ld", f1, f2);
        //如果循环次数(没两月为一次)为偶数,即2,4...换行,就是没四个月兔子总数按一行打印出来
        if(i % 2 == 0) printf("\n");
        //printf("\n");
        //第三个月兔子总数等于上一个月加前一个月,第一次循环为1+1,并把所得值赋值到F1并输出,新的f1值参与到下一次运算
        f1 = f2 + f1;
        //新的f1兔子总数等于四月前一个月的兔子加上前两月的兔子数f2为四月兔子总数,并依次类推
        f2 = f1 + f2;
    }
}

//有一对兔子,出生后没3个月生一对兔子,小兔子长到三个月后每月又生一对兔子,如果兔子不死,求四十个月后兔子总数
void test2()
{
    //根据绘制表格得到每个月兔子总数,第一个月总数为f1,第二个月为f2,第三个月往后依次等于上一个月加前一个月的兔子数
    long int f1, f2;
    int i;
    f1 = 1; f2 = 1;
    for(i = 1; i <= 20; i++)
    {
        //修改程序,没两个月兔子总数换行
        printf("%20ld%20ld", f1, f2);
        //如果循环次数(没两月为一次)为偶数,即2,4...换行,就是没四个月兔子总数按一行打印出来
        //if(i % 2 == 0) printf("\n");
        printf("\n");
        f1 = f2 + f1;
        f2 = f1 + f2;
    }
}

void test3()
{
    //根据绘制表格得到每个月兔子总数,第一个月总数为f1,第二个月为f2,第三个月往后依次等于上一个月加前一个月的兔子数
    long int f1, f2;
    int i;
    //f1 = 1; f2 = 1;
    for(i = 1; i <= 20; i++)
    {
        //未给F1 F2赋值,程序出错,返回负数
        printf("%20ld%20ld", f1, f2);
        //如果循环次数(没两月为一次)为偶数,即2,4...换行,就是没四个月兔子总数按一行打印出来
        if(i % 2 == 0) printf("\n");
        f1 = f2 + f1;
        f2 = f1 + f2;
    }
}

void test4()
{
    //根据绘制表格得到每个月兔子总数,第一个月总数为f1,第二个月为f2,第三个月往后依次等于上一个月加前一个月的兔子数
    long int f1, f2;
    int i;
    f1 = 1; f2 = 1;
    for(i = 1; i <= 20; i++)
    {
        //修改程序,没一月兔子总数换行
        printf("%-20ld\n", f1);
        printf("%-20ld\n", f2);
        f1 = f2 + f1;
        f2 = f1 + f2;
    }
}

void main()
{
    test1();
    test2();
    test3();
    test4();
    system("pause");
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值