题解 | #统计每个月兔子的总数#
统计每个月兔子的总数
http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395
//开局1只幼兔,第二月幼兔成孕兔,第三月孕兔生幼兔,上个月幼兔成孕兔,孕兔生完还是孕兔。
//某月总兔数 = 幼兔数 + 孕兔数
//幼兔数 = 上个月的孕兔数
//孕兔数 = 上个月的孕兔数 + 上个月的幼兔数
#include<stdio.h>
int main(){
int M;
scanf("%d",&M);
int c_rabbit[32]={0},p_rabbit[32]={0};
//第一个月,幼兔和孕兔数量给定。
c_rabbit[1]=1; p_rabbit[1]=0;
//下个月兔子数量由上个月决定
for(int month=2;month<=M;month++){
c_rabbit[month]=p_rabbit[month-1];
p_rabbit[month]=p_rabbit[month-1]+c_rabbit[month-1];
}
printf("%d",p_rabbit[M]+c_rabbit[M]);
}
//某月总兔数 = 幼兔数 + 孕兔数
//幼兔数 = 上个月的孕兔数
//孕兔数 = 上个月的孕兔数 + 上个月的幼兔数
#include<stdio.h>
int main(){
int M;
scanf("%d",&M);
int c_rabbit[32]={0},p_rabbit[32]={0};
//第一个月,幼兔和孕兔数量给定。
c_rabbit[1]=1; p_rabbit[1]=0;
//下个月兔子数量由上个月决定
for(int month=2;month<=M;month++){
c_rabbit[month]=p_rabbit[month-1];
p_rabbit[month]=p_rabbit[month-1]+c_rabbit[month-1];
}
printf("%d",p_rabbit[M]+c_rabbit[M]);
}