张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛,
生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授13年后有多少头母牛?
思路:一看就是递归题嘛,但是就是这个题,搞了我们班讨论将近一个小时(扶额-.=#),一个递归解法,和一个暴力解法…
public class Text4 {
public static void main(String[] args) {
System.out.println(niu(13)); // 调用,给定13年,输出60!!
}
public static int niu(int x) {
if (x == 1 || x == 2 || x == 3) { // 1,2,3年给成固定的一只牛
return 1;
}
return niu(x - 1) + niu(x - 3); // 牛=上一年的牛+今年的牛
}
}
暴力看这里!!
小声bibi:这种问题的话,还是递归比较快乐哟。感谢南墙大大!!
public class Text4 {
public static void main(String[] args) {
int n = 13;
int[] num = new int[14];
num[1] = 1;
num[2] = 1;
num[3] = 1;
for (int i = 4; i <= n; i++) {
num[i] = num[i - 1] + num[i - 3];
}
System.out.println(num[n]);
}
}