题解 | #兔子生产队#
统计每个月兔子的总数
http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395
#include <iostream>
using namespace std;
int main(){
int month;
while(cin>>month){
int big=0,small=1;
while(--month){
int temp = big;
big+=small;
small=temp;
}
cout << big+small<<endl;
}
return 0;
} 直接分为大小兔子即可,这道题兔子第三个月就开始生小兔子,生的这个小兔子在第三个月就开始算一个月大了,所以从出生到繁殖仅有2个月。
大兔子可以分为2个月和2个月大以上的所有兔子,2个月大的兔子下一个月就要繁殖,2个月以上的已经开始生了;
所以先把大兔子的值保留,然后大兔子变为small(上个月的small到这个月就是第二个月了,下个月就开始繁殖)+big;
small的值就是保留的上个月的大兔子的值。