題目
有一個無限數列: 1,2,3,3,4,4,4,5,5,5,5,5,…, 相同的數字排成一行。給出數列中的第n個數, 得出該數所在行之前行的數字個數。
例如:
輸入:6
結果爲:4
我的答案
該題目, 數字有點少, 如果沒有意識到, 還真的比較難發現。
1一個, 2一個, 3兩個, 4三個, 5五個
有沒有發現這其實一個是斐波那契數列。所以可以得到6八個。
現在回過來看示例中的輸入與輸出, 數列中的第6個數是4, 4所在行的之前行有1, 2, 3,3四個數, 所以結果爲4.
知道數字的個數是斐波那契關係之後, 代碼就很簡單了。
代碼實現:
function fb(n) {
let first = 1
let second = 1
let total = 0
let oldTotal = 0
while (total < n) {
oldTotal = total
total = first + total
let temp = first
first = second
second = temp + second
}
return oldTotal
}
結尾
最近秋招, 心累。 希望大家共勉