B1006 换个格式输出整数 (15分)

依据各位数数字输出字母

1. 原文

让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式

每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

输出格式:

每个测试用例的输出占一行,用规定的格式输出 n

输入样例 1:

1
234    

输出样例 1:

1
BBSSS1234  

输入样例 2:

1
23   

输出样例 2:

1
SS123

2. 解析思路

将数字n的各位存在数组中,数组倒置各位

巧用switch-case,判断数字位数来输出字母

3. AC代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int num[4];
int cnt=0;
do{
num[cnt++]=n%10;
n/=10;
}while(n);
//printf("%d\n",cnt );
cnt--;
switch(cnt){
case 2:
while(num[cnt]--){
printf("B");
}
cnt--;
case 1:
while(num[cnt]--){
printf("S");
}
cnt--;
case 0:
int temp=0;
while(temp!=num[cnt]){
printf("%d",temp+1);
temp++;
}
}
return 0;
}
本文结束  感谢您的阅读
  • 本文作者: Wang Ting
  • 本文链接: /zh-CN/2019/09/06/B1006/
  • 发布时间: 2019-09-06 17:03
  • 更新时间: 2021-10-29 14:14
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!