#include <iostream> using namespace std; int main() { int f,f1=0,f2=1; int N,left=0,right=0; cin>>N; while(1) { f=f1+f2;//使用循环求出斐波那契数 f1=f2; f2=f; if(f<N) { left=f;//找到N右侧最近的斐波那契数 } else { right=f;//找到N左侧最近的斐波那契数 break; } } cout<<min(N-left,right-N)<<endl;//求出他们差的最小值 }