兔子繁衍问题—c语言
问题:
一对兔子,从出生后第三个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才能到达n对?输入一个不超过10 000的正整数n,输出兔子总数达到n的最少月数,试编写相应程序。
思路
编写程序
1.输入月份,输出兔子总数
#include<stdio.h>
int main()
{
int month;
scanf("%d",&month);
int small = 1;
int big = 1;
int n = 3;
int amount ;
if(month == 1 || month == 2){
printf("1\n");
}else{
while(n<=month){
amount = small + big;
int t = small;
small = amount;
big = t;
n ++;
}
printf("第%d个月的兔子的个数是%d\n",month,amount);
}
return 0;
}
2.输入兔子总数,输出月份
#include<stdio.h>
int main()
{
int month = 2;
//scanf("%d",&month);
int small =1;
int big = 1;
int amount;
int newamount;
int m ;
int a = 2;
printf("请输入兔子数:\n");
scanf("%d",&amount);
if(amount == 1){
printf("达到这样的兔子数是1月和2月\n");
}else{
while(newamount!=amount){
a ++;
newamount = big + small;
m = small;
small = newamount;
big = m;
}
printf("达到%d只兔子需要%d个月\n",amount,a);
}
return 0;
}
兔子繁衍问题—c语言
问题:
一对兔子,从出生后第三个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才能到达n对?输入一个不超过10 000的正整数n,输出兔子总数达到n的最少月数,试编写相应程序。
思路
编写程序
1.输入月份,输出兔子总数
#include<stdio.h>
int main()
{
int month;
scanf("%d",&month);
int small = 1;
int big = 1;
int n = 3;
int amount ;
if(month == 1 || month == 2){
printf("1\n");
}else{
while(n<=month){
amount = small + big;
int t = small;
small = amount;
big = t;
n ++;
}
printf("第%d个月的兔子的个数是%d\n",month,amount);
}
return 0;
}
2.输入兔子总数,输出月份
#include<stdio.h>
int main()
{
int month = 2;
//scanf("%d",&month);
int small =1;
int big = 1;
int amount;
int newamount;
int m ;
int a = 2;
printf("请输入兔子数:\n");
scanf("%d",&amount);
if(amount == 1){
printf("达到这样的兔子数是1月和2月\n");
}else{
while(newamount!=amount){
a ++;
newamount = big + small;
m = small;
small = newamount;
big = m;
}
printf("达到%d只兔子需要%d个月\n",amount,a);
}
return 0;
}