这是一道大数相加的模板
#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
string a[1001];
string add(string a, string b)
{
string max = a, min = b;
if (a.length() < b.length()) {
max = b;
min = a;
}
int la = max.size(), lb = min.size();
int l = max.size() - 1, j;
for (j = lb - 1; j >= 0; j--, l--)
max[l] += min[j] - '0';
for (j = la - 1; j >= 1; j--) {
if (max[j] > '9') {
max[j] -= 10;
max[j - 1]++;
}
}
if (max[0] > '9') {
max[0] -= 10;
max = "1" + max;
}
return max;
}
int main()
{
int n;
a[0] = "1";
a[1] = "1";
a[2] = "2";
a[3] = "4";
for (int i = 4; i < 1001; i++) {
a[i] = add(add(a[i - 1], a[i - 2]), a[i - 4]);
}
while (cin >> n) {
cout << a[n] << endl;
}
}}
因为是字符,字符对应Ascii码