题解 | Fibonacci数列
Fibonacci数列
https://www.nowcoder.com/practice/18ecd0ecf5ef4fe9ba3f17f8d00d2d66
#include <stdio.h> int main(int argc, char const* argv[]) { int i = 2,d1=0,d2=0; long long n = 0,fib0=0,fib1=1,fib=0; scanf("%ld", &n); if (n == 1) d2 = 0; else { for (; i <= n; i++) { fib = fib0 + fib1; d2 = n - fib; if (d2 <= 0)break; fib0 = fib1; fib1 = fib; d1 = d2; } d2 = (d1 < -d2) ? d1 : -d2; } printf("%d ",d2); return 0; }