一道C语言编程题,求解大佬 10
一对兔子,从出生第四个月起,每个月都能生一对兔子,假如都不死,问如果有一对刚出生的兔子,要繁衍多少个月,兔子总数才能达到n?这是我的代码,我的运算方式哪里有问题我怀疑我对...
一对兔子,从出生第四个月起,每个月都能生一对兔子,假如都不死,问如果有一对刚出生的兔子,要繁衍多少个月,兔子总数才能达到n?
这是我的代码,我的运算方式哪里有问题
我怀疑我对题目的兔子增长可能理解的有问题😂
#include <stdio.h>
int main()
{
int i=1,sum=3,yue=5,n;
scanf("%d",&n);
if(n==1){
printf("%d",n);}
else if(n==2){
printf("4");}
else if(n==3){
printf("5");}
else if(n>3){
do{
sum=sum+i;
yue=yue+1;
i=i+1;}while(sum<n);
printf("%d",yue);}
return 0;
} 展开
这是我的代码,我的运算方式哪里有问题
我怀疑我对题目的兔子增长可能理解的有问题😂
#include <stdio.h>
int main()
{
int i=1,sum=3,yue=5,n;
scanf("%d",&n);
if(n==1){
printf("%d",n);}
else if(n==2){
printf("4");}
else if(n==3){
printf("5");}
else if(n>3){
do{
sum=sum+i;
yue=yue+1;
i=i+1;}while(sum<n);
printf("%d",yue);}
return 0;
} 展开
1个回答
2020-02-28
展开全部
觉得你的代码没问题,不过可以再简便点,从第4个月开始,第n个月的数量等于第n-1个月的数量第n-3个月的数量之和
#include <stdio.h>
int main() {
int i = 1, sum , yue = 4, n;
scanf("%d", &n);
if (n == 1) {
printf("%d", n);
} else {
int y[4] = {1, 1, 1, 2};
for (i = 4; sum < n; i++) {
sum = y[i%4] = y[(i - 1) % 4] + y[(i - 3) % 4];
yue++;
}
printf("%d",yue);
}
return 0;
}
#include <stdio.h>
int main() {
int i = 1, sum , yue = 4, n;
scanf("%d", &n);
if (n == 1) {
printf("%d", n);
} else {
int y[4] = {1, 1, 1, 2};
for (i = 4; sum < n; i++) {
sum = y[i%4] = y[(i - 1) % 4] + y[(i - 3) % 4];
yue++;
}
printf("%d",yue);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询