题目描述: 首先得先理解了这个题的意思,这个题的意思先是有一头母牛,然后这头母牛每一年生一头小牛,而小牛在出生的第四个年头也可以生下一头母牛,问第n年一共有多少头牛 大致思路: 在前四年的时候是毫无疑问只有一头母牛可以生牛,所以前4年的牛数是年数, 可是到第五年的时候就有原来的一头老母牛和在第二年生的小母牛一起生两头牛了, 所以第五年的时候就是6头牛了, 到第六年的时候就有原来的一头老牛和第二年、第三年生的小母牛一起生三头牛了,再加上原 来的也就是前一年的牛头数一共有9头牛了 到第七年的时候,现在的牛数就等于前一年的牛数也就是第六年的牛数(9头)加上新生的 (老牛和第二、三、四年的小牛可以生四头),所以一共是13头牛 规律如下: 年 牛 1 1 2 2 3 3 4 4 5 6 6 9 7 13 8 19 假设这是第n年,牛头数为发(n),从上面可以形象的看出如果n<=4时,f(n)=n; 当n>4时,f(n)=f(n-1)+f(n-3) 代码如下: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner m=new Scanner(System.in); while(m.hasNext()) { int n=m.nextInt(); if(n==0) break; else if(n<=4) System.out.println(f(n)); else System.out.println(f(n-1)+f(n-3)); } } public static int f(int n) { if(n<=4) return n; else return f(n-1)+f(n-3); } }
0.0分
6 人评分
我为什么没过啊 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num=sc.nextInt(); num=s(num); System.out.println(num); } public static int s(int i) { if(i==1) return 1; else if(i==2) return 2; else if(i==3) return 3; else if(i>0) return s(i-1)+s(i-3); else return 0; } }
沧浪 2019-08-23 21:56:28 |
要可以多次输入
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:685 |
点我有惊喜!你懂得!浏览:1273 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:773 |
C二级辅导-同因查找 (C语言代码)浏览:705 |
川哥的吩咐 (C语言代码)浏览:926 |
简单的a+b (C语言代码)浏览:676 |
汽水瓶 (C语言代码)浏览:764 |
C语言程序设计教程(第三版)课后习题8.3 (Java代码)浏览:1402 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:686 |
打水问题 (C语言代码)浏览:1148 |
萌萌孟 2019-11-15 10:28:09 |
十八头是母牛生的和小牛生的,没有加上最初的老母牛,再加上老母牛就19了
萌萌孟 2019-11-15 10:37:08 |
不对,好像是第一代小牛的小牛在第八年也能生孩子了,还要在加一