问题描述:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。
请编程实现在第n年的时候,共有多少头母牛?
解题思路:
这里列举出前九年的母牛数量:
第一年 第二年 第三年 第四年 第五年 第六年 第七年 第八年
1 2 3 4 6 9 13 19
每头小母牛在第四年始也会生小母牛,其实就是自第二年开始出生的母牛,每过三年就会生出一头母牛
前四年,因为只有最开始的母牛会生出小母牛,所以第n年就只有n头母牛
但第五年开始,前三年的母牛也会生小母牛,由上面的规律,我们可以得出:
当n > 4时,第n年的母牛数量等于 (n-1)年 + (n-3)年的母牛数
加上(n-3)年的母牛数,是因为在3年前出生的母牛到今年也会生小母牛.
参考代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //hasNext()一直录入数据,可以手动按ctrl + d 退出(可以不用触发n=0时的return语句) while(sc.hasNext()){ int n = sc.nextInt(); if(n == 0){//当n=0时,退出循环,不做处理 return ; } System.out.println(cowNumber(n)); } } public static int cowNumber(int n){ //前四年,因为只有最开始的母牛会生出小母牛,所以第n年就只有n头母牛 if(n 4时,第n年的母牛数量等于 (n-1)年 + (n-3)年的母牛数 return cowNumber(n-1) + cowNumber(n-3); } }
0.0分
1 人评分
【回文数(二)】 (C++代码)浏览:873 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:581 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:551 |
最长单词 (C语言代码)浏览:1376 |
输出正反三角形 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:349 |
简单的a+b (C语言代码)浏览:577 |
母牛的故事 (C语言代码)浏览:1428 |
Cylinder (C语言描述+详细分析)浏览:3265 |