用vi写代码,不习惯,写的很差很乱 #include <stdio.h> #include <string.h> #define MAX 1000 int a[6004][MAX+2]; int i,j; int main(void) { int n; while(scanf("%d",&n) != EOF){ for (i=0;i<6002;i++) for (j=0;j<MAX+2;j++) a[i][j] = 0; a[1][MAX] = 1; a[2][MAX] = 1; for (i=3;i<=n;i++) { for (j=MAX;j>0;j--) { a[i][j] = a[i][j] + a[i-1][j]+a[i-2][j]; if (a[i][j] > 9) { a[i][j] -= 10; a[i][j-1] += 1; } } } i = 0; while (a[n][i] == 0) i++; while (i<=MAX){ printf("%d",a[n][i]); i++;} printf("/n"); } return 0; }