HDU1715 大菲波数
问题链接:HDU1715 大菲波数。
问题简述:参见上述链接。
问题分析:大数问题。为了避免重复计算,需要打表。
程序说明:(略)。
AC的C++语言程序如下:
/* HDU1715 大菲波数 */ #include <iostream> #include <string> using namespace std; const int MAXN = 1000; string s[MAXN+1]; void maketable(int n) { string a, b; s[1] = "1"; s[2] = "1"; for(int i=3; i<=n; i++) { a = "00" + s[i-2]; b = "0" + s[i-1]; int val, carry=0; for(int j=(int)a.length()-1, k=(int)b.length()-1; k>=0; j--, k--) { val = (a[j] - '0') + (b[k] - '0') + carry; carry = val / 10; b[k] = val % 10 + '0'; } if(b[0] == '0') b.erase(0, 1); s[i] = b; } } int main() { int n, pi; maketable(MAXN); cin >> n; while(n--) { cin >> pi; cout << s[pi] << endl; } return 0; }