叫我投投


私信TA

用户名:dnj0822

访问量:12238

签 名:

宇宙机天下第一

等  级
排  名 221
经  验 6129
参赛次数 0
文章发表 26
年  龄 0
在职情况 学生
学  校 肇庆学院
专  业

  自我简介:

#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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区