#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a = 0, b = 1, c = 1;
while(n > c)
{
a = b;
b = c;
c = a + b;
}
cout << min(c - n, n - b);
return 0;
}
优化后的版本: 使用三个变量进行模拟, n 就算在 Fibonacci 里这种特殊情况也可以解决!

京公网安备 11010502036488号