#include<stdio.h>
#include<string.h>
int main()
{
char m[100];
int a[100];
int n,i,k;
scanf("%d",&n);
while(n--)
{
k=0;
scanf("%s",&m);
int len=strlen(m);
for(i=0;m[i]!='\0';i++)
{
a[i]=m[i]-'0';
}
for(i=len-1;i>=0;i--)
{
if(a[i]-1<0&&k==0)
{
a[i]=9;
}
else if(a[i]-1>=0&&k==0)
{
a[i]=a[i]-1;
k=1;//判断是否需要继续循环;
}
}
if(a[0]!=0)
{
for(i=0;i<len;i++)
{
printf("%d",a[i]);
}
}
else
{
for(i=1;i<len;i++)
{
printf("%d",a[i]);
}
}
printf("%d\n",471);
}
return 0;
#include<string.h>
int main()
{
char m[100];
int a[100];
int n,i,k;
scanf("%d",&n);
while(n--)
{
k=0;
scanf("%s",&m);
int len=strlen(m);
for(i=0;m[i]!='\0';i++)
{
a[i]=m[i]-'0';
}
for(i=len-1;i>=0;i--)
{
if(a[i]-1<0&&k==0)
{
a[i]=9;
}
else if(a[i]-1>=0&&k==0)
{
a[i]=a[i]-1;
k=1;//判断是否需要继续循环;
}
}
if(a[0]!=0)
{
for(i=0;i<len;i++)
{
printf("%d",a[i]);
}
}
else
{
for(i=1;i<len;i++)
{
printf("%d",a[i]);
}
}
printf("%d\n",471);
}
return 0;
}
由于本题所用数据过大
采用数组
根据减法 竖式计算 数组模拟
得出结果