int main() { int a = 0;//第一个Fib数 int b = 1;//第二个Fib数 int c = a+b;//第三个Fib数 int n = 0; scanf("%d", &n); while (1) { a = b; b = c; c = a + b; if (c >= n) { break; } } int ret=n - b < c - n ? n - b : c - n;// 与n相邻的两个Fib数与n的差的比较 printf("%d", ret); return 0; }