代码:
#include<iostream> #include<string> using namespace std; int ns[2100] = { 0 }; string add(string sa, string sb) { string sa1, sb1; sa1 = sa; sb1 = sb; int la = sa.length(); int lb = sb.length(); if (la < lb) { string tmps = sa; sa = sb; sb = tmps; int tmpi; tmpi = la; la = lb; lb = tmpi; } string st = ""; for (int j = lb; j < la; ++j) { st += '0'; } st += sb; sb = st; int num = 0, k = 0; for (int m = la - 1; m >= 0; --m) { int sum = (sa[m] - '0') + (sb[m] - '0') + num; ns[k++] = sum % 10; num = sum / 10; } if (num > 0) { ns[k++] = num; } string str = ""; for (int j = k - 1; j >= 0; --j) { str += (ns[j] + '0'); } return str; } int main() { string f[7101]; f[1] = f[2] = f[3] = f[4] = "1"; for (int i = 5; i < 7101; ++i) { f[i] = add(add(f[i - 1], f[i - 2]), add(f[i - 3], f[i - 4])); } int num; while (cin >> num) { cout << f[num] << endl; //cout << f[num].length() << endl; } return 0; }