又一道简单题wrong了n次
简单来说就是s[i]-s[i+1];从后往前处理
错误原因:忘了考虑只有一位的情况(len=1)。。。。。。。
代码如下:
Code
#include<stdio.h>
#include<string.h>
char s[10000005];
void process()
{
int len=strlen(s);
int i,temp=s[len-1]-'0';
if(len==1)
{
printf("%s\n",s);
return ;
}
for(i=len-2;i>=1;i--)
{
if((s[i]-'0')<temp)
{
s[i]=s[i]+10-temp;
s[i-1]=s[i-1]-1;
temp=s[i]-'0';
}
else
{
s[i]=s[i]-temp;
temp=s[i]-'0';
}
}
if((s[0]-'0')<temp)
s[0]=s[0]+10-temp;
else
s[0]=s[0]-temp;
if(s[0]<='0')
printf("IMPOSSIBLE\n");
else
printf("%s\n",s);
}
int main()
{
int t=0;
while(scanf("%s",s),s[0]!='0')
{
t++;
printf("%d. ",t);
process();
}
}