计算机算法问题 “兔子生兔子”
设有一对兔子,从第三个月起每个月都生一对小兔子,然后小兔子长到三个月时也生一对小兔子,假设兔子都不死20个月每个月有多少对兔子一共有多少只兔子(前几个月就这样1对1对2对...
设有一对兔子,从第三个月起每个月都生一对小兔子,然后小兔子长到三个月时也生一对小兔子,假设兔子都不死 20个月 每个月有多少对兔子 一共有多少只兔子 ( 前几个月就这样 1对1对2对3对5对... )
各位朋友门 能告诉我思路是什么么? 展开
各位朋友门 能告诉我思路是什么么? 展开
2个回答
展开全部
斐波那契数列
C语言
//利用循环输出前40项
#include <stdio.h>
int main()
{
long fib[41] = {0,1};
int i;
for(i=2;i<41;i++)fib[i] = fib[i-1]+fib[i-2];
for(i=1;i<41;i++)printf("F%d==%d\n",i,fib[i]);
getch();
return 0;
}
//利用递归实现指定项输出
#include <stdio.h>
int fib(int x);
int main()
{
int x;
scanf("%d",&x);
printf("%d\n",fib(x));
getch();
return 0;
}
int fib(int x)
{
if(x == 1 || x == 2)
return 1;
else
return fib(x-1)+fib(x-2);
}
C语言
//利用循环输出前40项
#include <stdio.h>
int main()
{
long fib[41] = {0,1};
int i;
for(i=2;i<41;i++)fib[i] = fib[i-1]+fib[i-2];
for(i=1;i<41;i++)printf("F%d==%d\n",i,fib[i]);
getch();
return 0;
}
//利用递归实现指定项输出
#include <stdio.h>
int fib(int x);
int main()
{
int x;
scanf("%d",&x);
printf("%d\n",fib(x));
getch();
return 0;
}
int fib(int x)
{
if(x == 1 || x == 2)
return 1;
else
return fib(x-1)+fib(x-2);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询