1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| // @Title: 和为 K 的最少斐波那契数字数目 (Find the Minimum Number of Fibonacci Numbers Whose Sum Is K)
// @Author: 15816537946@163.com
// @Date: 2022-02-03 10:46:18
// @Runtime: 0 ms
// @Memory: 2 MB
impl Solution {
pub fn find_min_fibonacci_numbers(mut k: i32) -> i32 {
let mut f = vec![1, 1];
let mut ans = 0;
while f[f.len() - 1] < k {
f.push(f[f.len() - 1] + f[f.len() - 2]);
}
let mut i = f.len() - 1;
while k > 0 {
if k >= f[i] {
k -= f[i];
ans += 1;
}
i -= 1;
}
ans
}
}
|