麻烦各位高手给出出主意,怎么样考虑十百千位是零时的情况吖!我看见它就头晕了,唉……真的谢谢了!
Input 第一行包含一个整数n(1≤n≤200)表示测试用例的个数。其后的n行中,每行包含有一个整数k(0≤k<100000)。
Output
每个测试用例的输出单独占一行,输出整数k的发音对应的文字。0-9还是以数字形式输出,十百千万分别用它们的拼音的第一个字母的大写表示,即为S、B、Q、W。
Sample Input
5
0
10
203
1008
12345
Sample Output
0
1S
2B03
1Q08
1W2Q3B4S5
#include <stdio.h>
int main()
{
int a,b,c,d,e,n,k,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&k);
if(k>=10000)
{
a=k/10000;
b=(k-a*10000)/1000;
c=(k-a*10000-b*1000)/100;
d=(k-a*10000-b*1000-c*100)/10;
e=k-a*10000-b*1000-c*100-d*10;
printf("%dW%dQ%dB%dS%d\n",a,b,c,d,e);
}
else if(k>=1000)
{
b=k/1000;
c=(k-b*1000)/100;
d=(k-b*1000-c*100)/10;
e=k-b*1000-c*100-d*10;
printf("%dQ%dB%dS%d\n",b,c,d,e);
}
else if(k>=100)
{
c=k/100;
d=(k-c*100)/10;
e=k-c*100-d*10;
printf("%dB%dS%d\n",c,d,e);
}
else if(k>=10)
{
d=k/10;
e=k-d*10;
printf("%dS%d\n",d,e);
}
else
printf("%d\n",k);
}
return 0;
}