兔子繁衍问题c语言函数 c语言兔子繁衍问题输出每个月的兔子

兔子繁殖问题 C语言编程

根据题意,得出以下结果:

成都服务器托管,成都创新互联公司提供包括服务器租用、服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名注册等业务的一体化完整服务。电话咨询:18980820575

年份:0 0.5 1 1.5 2 2.5 3 3.5 4 ...

兔子:1 1 2 3 5 8 13 21 34...

序号: 0 1 2 3 4 5 6 7 8...

所以发现规律:除前两个外,后面的则是等于前两个的种即:A0=1,A2=1,An=A(n-1)+A(n-2)

这样程序就可以开始编制了

#include "stdio.h"

main()

{

int year,total,i,a1,a2;

printf("\n请输入多少年后:");

scanf("%d",year);

a1=1;

a2=1;

for(i=2;i2*year;i++)

{

if(i%2==1)

{

a1=a1+a2;

total=a1;

}else{

a2=a1+a2;

total=a2;

}

}

printf("\n第%d年末总共会有%d对兔子",year,total);

}

C语言 兔子的繁殖问题(注意,就是按题目样例要求输入然后输出,要一样)

#includestdio.h

int main()

{

int a[50];

int i,t,n;

a[0]=1;

a[1]=1;

for(i=2;i50;i++)

a[i]=a[i-1]+a[i-2];

scanf("%d",t);

while(t--)

{

scanf("%d",n);

printf("%d\n",a[n]);

}

return 0;

}

C语言编程题目 兔子繁衍问题?

方法一、用递归。

方法二、把兔子定义成结构,每个兔子自带计时器变量,繁殖就是新建节点,构建结构链表。每次循环遍历所有节点的计时变量大于3的就新建一个节点插入链表。最后统计节点数量。

我用方法1来写:

#include stdio.h

int childbirth(int bMth,int gMth)//bMth:调用时传0,gMth:经过的最大月数

{

int cnt=0,n=bMth,num=2;

while(n++gMth+1)

  if(cnt++2)

      num=num+childbirth(n,gMth+1);

return num;

}

int main()

{

int i,n;

printf("请输入经过多少月:"),scanf("%d",n);

for(i=1;i=n;i++)

  printf("经过%d个月后:兔子数量为:%d\n",i,childbirth(0,i));

return 0;

}

C语言编程:兔子繁殖问题

思路不要乱。这个月的兔子只有两个来源,一个来源是上个月的老兔子,另一个来源是这个月刚出生的兔子,而这个月刚出生的兔子,就是两个月前的所有兔子,因为两个月前的所有兔子,无论两个月前就是老的,还是两个月前刚生的,到了这个月就全部具有生育能力,每只都可以下一对儿,所以可以得到一个递推关系f(n) = f(n - 1) + f(n - 2)。那么程序自然是

long fun(int month)

{

if(month == 1 || month == 2)

return 1;

else

return fun(month - 1) + fun(month -2);

}

// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。

int main()

int Mon;

long Num;

scanf("%d",Mon);

Num = fun(Mon);

printf("第%d月共有兔子%ld只\n",Mon,Num); 

return 0; 

}

至于你的程序,很难把它改正确,因为这题压根不是那个思路,那样想会越想越乱的


网站名称:兔子繁衍问题c语言函数 c语言兔子繁衍问题输出每个月的兔子
转载来源:http://scyanting.com/article/dosdijp.html