page contents

C语言函数的递归调用之奶牛问题

某农场有一头小奶牛,过了4年后,小奶牛长大了,变成了大奶牛,并生了一只小奶牛。 之后的每一年大奶牛都会生一只小奶牛,而每过四年小奶牛就会长成大奶牛,长成大奶牛后又可以生小奶牛。 请...

某农场有一头小奶牛,过了4年后,小奶牛长大了,变成了大奶牛,并生了一只小奶牛。

之后的每一年大奶牛都会生一只小奶牛,而每过四年小奶牛就会长成大奶牛,长成大奶牛后又可以生小奶牛。

请问20年后,此农场一共有多少头牛?

//某农场有一只刚出生的奶牛,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){  //第2个4年开始后产的奶牛开始生新奶牛


                sumCow += cowNum(year - n);


            } else {

                sumCow++;


            }


        }


    }


    return sumCow;    //返回奶牛总数

}


int main() {

    int year =0;


    printf("Please input require years:\n");


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


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


    getchar();

    getchar();

    return 0;

}

  • 发表于 2021-04-26 14:08
  • 阅读 ( 1403 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
小威
小威

64 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章