C语言_递归算法-奶牛生子问题

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

int cowNum(int year){

    int n =0;

    int sumCow = 1//奶牛总数

    for(n = 1; n <= year; n++){

        if(n >= 4){  //4年以后奶牛数量开始增多

            if((year – n) > 3){  //24年开始后产的奶牛开始生新奶牛

                sumCow += cowNum(year – n);

            } else {

                sumCow++;

            }

        }

    }

    return sumCow;    //返回奶牛总数

}

int main(int argc, const char * argv[]) {

    int year =0;

    printf(“Please input require years:\n”);

    scanf (“%d”, &year);  //输入年数

    printf(“%d年后,会有%d头奶牛.\n”, year, cowNum(year));  //输出结果

    return 0;

}

    原文作者:递归算法
    原文地址: https://blog.csdn.net/u012937518/article/details/44704737
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞