根据题目意思先来缕清一下思路:
第一年 初始值为 1 (也就是刚开始一头母牛)
第二年 2(也就是刚开始一头母牛+一头小母牛) )
第三年 3(也就是刚开始一头母牛+两头小母牛) )
第四年年 4(也就是刚开始一头母牛+三头小母牛) )
第五年 6(也就是刚开始一头母牛+加上四头小母牛+由于第二年生的一头小母牛又生了一头小母牛)
第六年 9(也就是刚开始一头母牛+加上第五头小母牛+由于第三年两头小母牛生了2头+一头母牛生了一头)
那么给出两种解决方法:
public static void main(String[] args) { System.out.println(countCows(5)); } public static int countCows(int years){ if (years==1) return 1; if (years==2) return 2; if (years==3) return 3; if (years==4) return 4; int[] yearsCows = new int[years+1]; yearsCows[1] =1; yearsCows[2] =2; yearsCows[3] =3; yearsCows[4] =4; for(int i=5;i<=years;i++){ yearsCows[i] = yearsCows[i-1]+yearsCows[i-3]; } return yearsCows[years]; }
第二种用递归:
public static void main(String[] args) { System.out.println(countCows(6)); } public static int countCows(int years){ if (years==1) return 1; if (years==2) return 2; if (years==3) return 3; if (years==4) return 4; else { return countCows(years-1)+countCows(years-3); } }
标签:年初,return,int,years,一头,countCows,母牛 From: https://www.cnblogs.com/Gaze/p/18246406