for (int i = 3; i <= n - m; i++)
high(i);
这里为什么不能i<=n,最后输出a[n][i]??
#include <iostream>
#include <cstdio>
using namespace std;
int n, m,a[100][100],len=1;
void high(int x)
{
for (int i = 1; i <= len; i++)
a[x][i] = a[x - 2][i] + a[x - 1][i];
for (int i = 1; i <= len; i++)
{
if (a[x][i] > 9)
{
a[x][i + 1] += a[x][i] / 10;
a[x][i] %= 10;
}
}
if (a[x][len + 1])
++len;
}
int main()
{
cin >> m >> n;
a[1][1] = 1, a[2][1] = 2, a[0][1] = 0;
for (int i = 3; i <= n - m; i++)
high(i);
for (int i = len; i > 0; i--)
cout << a[n-m][i];
return 0;
}