#include<stdio.h> long count(int n) { long oldOneYearCow = 0; long oldTwoYearCow = 0; long oldThreeYearCow = 0; long newOneYearCow = 0; long newTwoYearCow = 0; long newThreeYearCow = 0; long cowCanBirth = 1;//第一年有一头可以生育的牛 long countNum = 1;//第一年时总共有一头牛 /*i表示年份,上面的初始化数据便是第一年时的数据,循环内从第二年开始计算,循环一次表示过了一年 */ for(int i=2;i<=n;++i) { cowCanBirth = oldThreeYearCow + cowCanBirth;/*以往的能生育的牛的数量加上新长到四岁的牛的数量便是今年能生育的牛的数量*/ newOneYearCow = cowCanBirth;//有多少头能生育的牛就会有多少头新出生的一岁牛 newTwoYearCow = oldOneYearCow;//去年的一岁牛长到两岁 newThreeYearCow = oldTwoYearCow;//去年的两岁牛长到三岁 countNum = newOneYearCow+newTwoYearCow+newThreeYearCow+cowCanBirth; oldOneYearCow = newOneYearCow;//今年的一岁牛到了下一年就会变成去年的一岁牛 oldTwoYearCow = newTwoYearCow;//今年的两岁牛到了下一年就会变成去年的两岁牛 oldThreeYearCow = newThreeYearCow;//今年的三岁牛到了下一年就会变成去年的三岁牛 } return countNum; } int main() { int year; while(scanf("%d",&year)==1&&year!=0) { printf("%ld\n",count(year)); } return 0; }
0.0分
0 人评分