//兔子繁殖问题(Fibonacci数列)的几种算法
#include <stdio.h>
#include <stdlib.h>
int fib1(int month)
{
int fib,f1=1,f2=1,i;
printf("%12d%12d",f1,f2);
for(i=3;i<=month;i++)
{
fib=f1+f2;
f2=f1,f1=fib;
printf("%12d",fib);
if(i%4==0)
printf("\n");
}
return 1;
}
int fib2(int month)
{
int f1=1,f2=1,i;
printf("%12d%12d",f1,f2);
for(i=2;i<=month/2;i++)
{
f1=f1+f2;
f2=f1+f2;
printf("%12d%12d",f1,f2);
if(i%2==0)
printf("\n");
}
return 1;
}
int fib3(int month)
{
int young=1,midlife=0,old=0,total,i=1;
for(;i<=month;i++)
{
total=old+midlife+young;
printf("%12d",total);
old=old+midlife,midlife=young,young=old;
if(i%4==0)
printf("\n");
}
return 1;
}
int fib4(int month)
{
int sum=0;
if(month<3)
sum=1;
else
sum=fib4(month-1)+fib4(month-2);
return sum;
}
int fib5(int month)
{
int i,fib[100]={1,1};
printf("%12d%12d",1,1);
for(i=2;i<month;i++)
{
fib[i]=fib[i-1]+fib[i-2];
printf("%12d",fib[i]);
if((i+1)%4==0)
printf("\n");
}
return 1;
}
main()
{
int select=1,month;
while(select)
{
system("cls");
printf("兔子繁殖问题的几种迭代算法选择(1~3):\n");
printf("1:按Fibonacci数列的性质迭代算法:\n");
printf("2:按一次迭代计算二个月兔子数的算法:\n");
printf("3:按兔子繁殖问题的本义的迭代算法:\n");
printf("4:兔子繁殖问题的递归算法:\n");
printf("5:用一维数组计算兔子繁殖问题的算法:\n");
printf("0:退出\n");
scanf("%d",&select);
switch(select)
{
case 1:printf("你选择了1:按Fibonacci数列的性质迭代算法,请输入月数:");
scanf("%d",&month);
select=fib1(month);
break;
case 2:printf("你选择了2:按一次迭代计算二个月兔子数的算法,请输入月数:");
scanf("%d",&month);
select=fib2(month);
break;
case 3:printf("你选择了3:按兔子繁殖问题的本义的迭代算法,请输入月数:");
scanf("%d",&month);
select=fib3(month);
break;
case 4:printf("你选择了4:兔子繁殖问题的递归算法,请输入月数:");
scanf("%d",&month);
printf("第%d个月的兔子总数是%d只。\n",month,select=fib4(month));
break;
case 5:printf("你选择了5:用一维数组计算兔子繁殖问题的算法,请输入月数:");
scanf("%d",&month);
select=fib5(month);
break;
default :select=0;
}
system("pause");
}
}
本文来源:https://www.wddqw.com/doc/6828b7a5cf22bcd126fff705cc17552707225ebd.html
正在阅读:
兔子繁殖问题的几种算法(函数形式)01-01
天和就字造句子01-01
古诗文《面朝大海春暖花开》语文鉴赏01-01
一个人可以被毁灭,但不能给打败——《老人与海》读后感_1200字01-01
杜甫《登岳阳楼》“昔闻洞庭水,今上岳阳楼”古诗词阅读理解01-01
2018抖音最新版个性签名:你要特别慷慨,我绝对比你还敞亮。01-01
《清明》杜牧简介01-01
与清明节有关的成语大全01-01