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[];
char str[]; bool judge(int k)
{
while(strr[++k])
return ;
return ;
} int main()
{
cin>>n;
while(n--)
{
memset(strr,,sizeof(strr));
scanf("%s",str);
int l=strlen(str);
if(str[]!='-')
{
for(int i=;i<l;++i)
strr[l-i]=str[i]-;
strr[]++;
int i=;
while(strr[i]>=)
{
strr[i+]++;
strr[i]%=;
l=max(l,i+);
i++;
}
for(i=l;i>;i--)
cout<<strr[i];
}
if(str[]=='-')
{
for(int i=;i<l;++i)
strr[l-i]=str[i]-;
strr[]--;
int i=;
while(strr[i]<)
{
strr[i+]--;
strr[i]+=;
if(strr[i+])
l=max(l,i+);
else
if(!judge(i+))
l=min(l,i+);
i++;
}
if(strr[l-]!=)
{
cout<<"-";
for(i=l-;i>=;i--)
cout<<strr[i];
}
else cout<<"";
}
cout<<" ";
}
return 0;
}