原题:
让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。
输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。
输出格式:每个测试用例的输出占一行,用规定的格式输出n。
输入样例1:
234
输出样例1:
BBSSS1234
输入样例2:
23
输出样例2:
SS123
我的理解:
题意应该很清晰,一个B表示一百,一个S表示一十,个位用连续的数字表示
那么首先应该找出个位,十位,百位各是多少
然后按要求打印就行
code:
1 #include<stdio.h> 2 int main() 3 { 4 int n=0,i=0,j=0; 5 int a[3]; 6 char b[3]={'0','S','B'};//这里为了打印的时候,内外层循环下标同步,从b[1]开始赋值 7 scanf("%d",&n); 8 while(n!=0) 9 { 10 a[i]=n%10;//计算个,十,百位的数字,并按个位数,十位数,百位数的顺序保存 11 n/=10; 12 i++; 13 } 14 for(i=i-1;i>0;i--)//打印百位B,十位S 15 { 16 for(j=0;j<a[i];j++) 17 printf("%c",b[i]); 18 } 19 for(j=1;j<=a[0];j++)//打印个位 20 printf("%d",j); 21 return 0; 22 }