古典问题:有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
思考这道题的时候,如果你简单的推算一下,会发现每个月的兔子总数为1,1,2,3,5,8,13,21…
诶?!这不就是一个斐波那契数列嘛——第一个和第二个数字都是1,而后续的每个数字是其前两个数字之和。
知道了这个规律,再结合递归的思想,很容易就能得出结果~
const readline = require("readline-sync");
var n = readline.question("请输入月份:");
function foo(n){
if (n === 0) return 0;
if (n === 1) return 1;
return foo(n - 2) + foo(n - 1);
};
console.log("第"+n+"个月的兔子总数为"+foo(n)+"只。");
//请输入月份:10
//第10个月的兔子总数为55只。