![]() |
#2
思忆季节2010-06-03 22:50
|

#include<iostream>
#include<string>
using namespace std;
const int size=1000010;
char a[size];
int b[size],c[size];
int main ()
{
int len;
__int64 count=1;
while (cin>>a)
{
len=strlen(a);
int j=0;
for (int i=len-1;i>=0;i--)
b[j++]=a[i]-'0';
c[0]=b[0];
b[len]=1;
for (int i=1;i<len;i++)
{
if (b[i]<c[i-1])
{
b[i]=b[i]+10;
b[i+1]=b[i+1]-1;
}
c[i]=b[i]-c[i-1];
}
if (c[len-1]==0)
printf("%lld. IMPOSSIBLE\n",count++);
else
{
printf("%lld. ",count++);
for (int i=len-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
}
return 0;
}
但在poj上交去总是wa,找不出原因。困惑!!! #include<string>
using namespace std;
const int size=1000010;
char a[size];
int b[size],c[size];
int main ()
{
int len;
__int64 count=1;
while (cin>>a)
{
len=strlen(a);
int j=0;
for (int i=len-1;i>=0;i--)
b[j++]=a[i]-'0';
c[0]=b[0];
b[len]=1;
for (int i=1;i<len;i++)
{
if (b[i]<c[i-1])
{
b[i]=b[i]+10;
b[i+1]=b[i+1]-1;
}
c[i]=b[i]-c[i-1];
}
if (c[len-1]==0)
printf("%lld. IMPOSSIBLE\n",count++);
else
{
printf("%lld. ",count++);
for (int i=len-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
}
return 0;
}