nyoj 458 小光棍数

来源:互联网 发布:java的http通信 编辑:程序博客网 时间:2024/04/29 21:03
#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;

}

由于本题所用数据过大

采用数组

根据减法 竖式计算  数组模拟

得出结果

0 0