T3054 高精度练习-文件操作 codevs
http://codevs.cn/problem/3054/
输入一组数据,将每个数据加1后输出
输入描述 Input Description
输入数据:两行,第一行为一个数n,第二行为n个数据
输出描述 Output Description
输出数据:一行,为处理过的数据
样例输入 Sample Input
5
-1 2 100 -5 14
样例输出 Sample Output
0 3 101 -4 15
数据范围及提示 Data Size & Hint
数据范围:对60%为数据,ni≤32767
对100%为数据,ni≤10255
n<=500
#include <iostream> #include <cstring> #include <cstdio> using namespace std; int n,strr[256]; char str[256]; bool judge(int k) { while(strr[++k]) return 1; return 0; } int main() { cin>>n; while(n--) { memset(strr,0,sizeof(strr)); scanf("%s",str); int l=strlen(str); if(str[0]!='-') { for(int i=0;i<l;++i) strr[l-i]=str[i]-48; strr[1]++; int i=1; while(strr[i]>=10) { strr[i+1]++; strr[i]%=10; l=max(l,i+1); i++; } for(i=l;i>0;i--) cout<<strr[i]; } if(str[0]=='-') { for(int i=1;i<l;++i) strr[l-i]=str[i]-48; strr[1]--; int i=1; while(strr[i]<0) { strr[i+1]--; strr[i]+=10; if(strr[i+1]) l=max(l,i+1); else if(!judge(i+1)) l=min(l,i+1); i++; } if(strr[l-1]!=0) { cout<<"-"; for(i=l-1;i>=1;i--) cout<<strr[i]; } else cout<<"0"; } cout<<" "; }
return 0; }
——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。