目录
题目:[递归]母牛的故事
思路:设求第 n 年的母牛数目为f(n)。
代码实现:动态规划
输出:对于每个测试实例,输出在第n年的时候母牛的数量。每个输出占一行。
样例输入
2 4 5 0
样例输出
2 4 6
n<=4时:第 n 年母牛总数为f(n) = n 。
n>4:第n 年母牛总数为第n-1年总数+第n年新出生的母牛数目。在第 n-3年 之前的母牛都会新生出母牛,每一头母牛生出一头新的小牛,则第 n -3 年有多少母牛,第n 年便会新增加多少头母牛。f(n) = f(n-1)+f(n-3)
package day1_19; import java.util.Scanner; //思路: /* * 创建一个数组,用来存放从1-n每天的母牛数目 * 在循环中读取n,判断如果n==0,则退出循环 * 不为0,则for循环,i:1-n,i<=4时,则arr[i] = i,否则为arr[i] = arr[i-1]+arr[i-3] * 输出 */ public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[55]; while(true) { int n = sc.nextInt(); if(n==0) { break; } for(int i =1;i<=n;i++) { if(i<=4) { arr[i] = i; } else { arr[i] = arr[i-1]+arr[i-3]; } } System.out.println(arr[n]); } } }