#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");
}