我正在嘗試使用遞回來解決以下問題:
在一個小鎮,年初人口為 p0 = 1000。人口以每年 2% 的速度定期增加,此外,每年有 50 名新居民來到該鎮居住。該鎮需要多少年才能看到其人口大于或等于 p = 1200 名居民?
這是我的代碼:
function nbYear(p0, percent, aug, p) {
let years = 0;
function recYears(p0, percent, aug, p) {
years = 1;
if (p/p0 <= 1.06 && p/p0 >= 1) {
return years;
} else {
return nbYear(p0 p0 * (percent/100) aug, percent, aug, p)
}
}
return recYears(p0, percent, aug, p);
}
console.log(nbYear(1500, 5, 100, 5000))
我years在遞回函式之外使用了變數,然后在內部增加了它。但問題是,回報recYears()就是1當它擊中的基本情況,同時我期待的回傳值是15,我不知道我在這里失蹤!我會很感激你的幫助。
uj5u.com熱心網友回復:
正如 Pointy 在評論中所說,recYears()我沒有呼叫,而是呼叫外部函式nbYear()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/403069.html
標籤:
