奶牛问题的解决思路

这篇博客探讨了一个奶牛增长的问题,从一个刚出生的奶牛开始,4年后开始每年生1只奶牛。作者提供了一种不依赖规律的解决方案,通过编程实现计算20年后奶牛的数量。算法通过迭代计算每年奶牛的增量,最终得出总数。文章还展示了详细的推导过程,指出f(n+3)=f(n+2)+f(n)的关系。
摘要由CSDN通过智能技术生成

问题

   一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。

作者实现的时候应用了规律,而我这里实现的时候,绕开规律。从一个点子入手

假设第一年一头奶牛,在N年后有多少个直系的奶牛

这还不容易,4年后,每年生一头奶牛,N-3

那么4年后的第一头奶牛,N年后有多少了直系的奶牛

这还不容易,4年后,每年生一头奶牛,N-6

 int CaculCowNum(int nYear){
    //数组保存从第一年开始到150年,每年增加的奶牛
    int nLocalYearCow[150]={0};

    //初始化奶牛为1头
    nLocalYearCow[1]=1;

    int tmp=0;

    int nSumCow=0;

    //遍历一次,每头奶牛在以后的某年生产多少头牛
    for(int i=1;i<nYear+1;i++)
    {
        tmp=nLocalYearCow[i];

        for(int j=i+3;j<nYear+1;j++)
        {
            nLocalYearCow[j]+=tmp;
        }
    }
    
    //将每年生产的奶牛相加
    for(int i=1;i<nYear+1;i&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值