题目来源:1414. 和为 K 的最少斐波那契数字数目/
2022.02.03每日一题
求解斐波那契数列的可以参考题目:509. 斐波那契数
题解导航:509.斐波那契数题解 / 509.斐波那契数题解
这道题目可以使用贪心的思想来进行求解,要寻找到组成该数字最少数目的斐波那契数列,所以只要寻找到小于等于 k 且距离其最近的那个斐波那契数字
具体代码以及注解如下
class Solution {
public int findMinFibonacciNumbers(int k) {
// 当 k 等于 0 时,可以跳出递归
if (k == 0) {
return 0;
}
int a = 1, b = 1;
while (b <= k) {
int temp = a + b;
a = b;
b = temp;
}
return 1 + findMinFibonacciNumbers(k - a);
}
}
class Solution {
public int findMinFibonacciNumbers(int k) {
// 当 k 等于 0 时,可以跳出递归
if (k == 0) {
return 0;
}
int a = 1, b = 1;
while (b <= k) {
int temp = a + b;
a = b;
b = temp;
}
return 1 + findMinFibonacciNumbers(k - a);
}
}