#include <stdio.h> int main() { int n, fibs[46] = {1, 1}; scanf("%d", &n); for (int i=2; i<n; ++i) { fibs[i] = fibs[i-1] + fibs[i-2]; } printf("%d", fibs[n-1]); return 0; } 定义占用 46*4 =184 字节的数组,可以不必递归