Problem Address:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1266
写了一个大数加,一次AC。
但是时间上感觉没有优势。对比了别人的,感觉有点远。
不知道是不是细节处理的问题。
求优化。
以下贴代码:
#include <iostream>using namespace std;char fp[1001][250];void add(int a, int b, int c){ int p=0; int i,d; for (i=0; fp[c][i]!='/0'; i++) { d = fp[c][i]-'0'+fp[b][i]-'0'+p; if (d>9) { fp[a][i] = '0' + d - 10; p = 1; } else { fp[a][i] = '0' + d; p = 0; } } for (;fp[b][i]!='/0'; i++) { d = fp[b][i]-'0'+p; if (d>9) { fp[a][i] = '0' + d - 10; p = 1; } else { fp[a][i] = '0' + d; p = 0; } } if (p==1) { fp[a][i] = '1'; } fp[a][i+1]='/0';}int main(){ fp[0][0]='0'; fp[0][1]='/0'; fp[1][0]='1'; fp[1][1]='/0'; int n,i,ct=1; scanf("%d", &n); while(scanf("%d", &n)!=EOF) { if (n>ct) { for (i=ct+1; i<=n; i++) { add(i,i-1,i-2); } } for (i=strlen(fp[n])-1; i>=0; i--) printf("%c", fp[n][i]); printf("/n"); } return 0;}
这个编辑器……代码不成样子= =