力扣OJ 1414. 和爲 K 的最少斐波那契數字數目

給你數字 k ,請你返回和爲 k 的斐波那契數字的最少數目,其中,每個斐波那契數字都可以被使用多次。

斐波那契數字定義爲:

F1 = 1
F2 = 1
Fn = Fn-1 + Fn-2 , 其中 n > 2 。
數據保證對於給定的 k ,一定能找到可行解。

 

示例 1:

輸入:k = 7
輸出:2 
解釋:斐波那契數字爲:1,1,2,3,5,8,13,……
對於 k = 7 ,我們可以得到 2 + 5 = 7 。
示例 2:

輸入:k = 10
輸出:2 
解釋:對於 k = 10 ,我們可以得到 2 + 8 = 10 。
示例 3:

輸入:k = 19
輸出:3 
解釋:對於 k = 19 ,我們可以得到 1 + 5 + 13 = 19 。
 

提示:

1 <= k <= 10^9

 

 

int findMinFibonacciNumbers(int k){
    int f[45];
    f[0] = 0, f[1] = 1;
	for (int i = 2; i <= 44; i++)f[i] = f[i - 1] + f[i - 2];
    int ans=0;
    for(int i=44;i>0;i--)if(k>=f[i])
    {
        k-=f[i],ans++;
    }
    return ans;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章