#include<stdio.h>
#include<math.h>
int main()
{
int n,t,w=0,lin1=0,lin2=0,i,j=1;
char arr[]={'S','B','Q','W','S','B','Q','Y'};
int a[11]={0};
scanf("%d",&n);
t=n;
while(t)
{
t=t/10;
w++;
}
t=n;
while(t)
{
if(t%10==0)
{
lin1++;
}
else
{
break;
}
t=t/10;
}
t=n;
t=t/10000;
while(t)
{
if(t%10==0)
{
lin2++;
}
else
{
break;
}
t=t/10;
}
t=n;
j=w;
for(i=w;i>=1;i--)
{
a[j--]=t%10;
t=t/10;
}
j=w-2;
if(n==0)
{
printf("a");
}
for(i=1;i<=w-lin1;i++)
{
if(lin2!=0)
{
if(w-4-i+1==lin2)
{
i=i+lin2;
printf("%c",'W');
j=j-lin2;
}
}
if(a[i]==0&&a[i+1]==0)
{
printf("a");
i=i+2;
j=j-2;
}
else if(a[i]==0&&j!=3)
{
printf("a");
j--;
}
else if(a[i]==0&&j==3)
{
printf("%c",arr[j--]);
}
if(a[i]!=0&&i!=w-lin1&&lin1!=0)
{
printf("%c",'a'+a[i]);
if(i!=w-lin1)
printf("%c",arr[j--]);
}
else if(a[i]!=0&&lin1!=0&&i==w-lin1)
{
printf("%c",'a'+a[i]);
printf("%c",arr[j]);
}
else if(a[i]!=0&&lin1==0)
{
printf("%c",'a'+a[i]);
if(i!=w-lin1)
printf("%c",arr[j--]);
}
}
return 0;
}
{
细节:连续0,单个0,到万位10若为0依然要输出单位,数字为0,跳过连续0时依然要输出最后的单位(=-=)真~~~
标签:10,转换,lin2,lin1,else,&&,printf,币值 From: https://blog.51cto.com/u_15789285/5919925