首先我們看到這個題目,第一眼應該想到這是一個找規律的題目,畢竟這種和數學題目一樣的,我們高中也是這么做的,只是我們通過所學知識把他表現出來.
接下來我們開始尋找規律,看看能不能發現什么
我們創建一個sum用來存盤相加的和
| 值 | 結果 |
|---|---|
| sum(1) | 1/2 |
| sum(2) | 1/2 |
| sum(3) | sum(1)+1/3 |
| sum(4) | sum(2)+1/4 |
| sum(5) | sum(3)+1/5 |
不難看出,當我們的值為n的時候,那么他的結果便為 sum(n)==sum(n-2)+1/n
接下來我們就可以開始做題目了
- 首先撰寫一個函式,命名這個函式名為sum
function sum(n){
}
- 當我們輸入的數字為1或者2時候的值是固定的,所以這兩個值不適用我們的公式,直接輸出即可
function sum(n){
if(n==1){
return 1;
}else if(n==2){
return 1/2;
}
}
- 當輸入的值為其他數字的時候,我們便可以用我們總結出來的規律了,我們這離可以用一個遞回函式,
function sum(n){
if (n == 1) {
return 1;
}
else if (n == 2) {
return 1 / 2;
}
else {
return sum(n - 2) + 1 / n;
}
}
- 接下來我們就可以呼叫這個函式看看結果,將他在控制臺輸出,為了方便判斷,我們的值取小一點
console.log(sum(3));
- 執行結果

為了確保準確性,我們多實驗幾次
function sum(n){
if (n == 1) {
return 1;
}
else if (n == 2) {
return 1 / 2;
}
else {
return sum(n - 2) + 1 / n;
}
}
console.log(sum(4));

結果是正確的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249943.html
標籤:其他
上一篇:士兵佇列訓練問題
