兔子繁殖问题的几种算法(函数形式)

时间:2022-07-29 02:24:25 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

//兔子繁殖问题(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