代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e9 + 10;
int n;
vector<int> f;
void init()
{
f.push_back(1);
f.push_back(1);
int t = 0;
for (int i = 2; t < N; i++)
{
t = f[i - 1] + f[i - 2];
f.push_back(t);
}
}
int fn(int n)
{
init();
int ans = 0;
int i = f.size() - 1;
while (n)
{//贪心策略:从n开始,尽量用大的数
if (n >= f[i])
{
n -= f[i];
ans++;
}
i--;
}
return ans;
}
int main()
{
cin >> n;
cout << fn(n);
return 0;
}