1006 换个格式输出整数
让我们用字母
B
来表示“百”、字母S
表示“十”,用12...n
来表示不为零的个位数字(n<10),换个格式来输出任一个不超过 3 位的正整数。例如234
应该被输出为BBSSS1234
,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:
每个测试输入包含 1 个测试用例,给出正整数(n<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123
作者: CHEN, Yue单位: 浙江大学时间限制: 400 ms内存限制: 64 MB
思路: 注意到测试样例是 n < 1000 的正整数,
那么n有三种情况,三位数、两位数和一位数,
根据三种不同的情况,将个位、十位、百位分离,
存入变量中,最后根据个位、百位、十位的数字进行输出。
1 /-----------C语言实现-----------/ 2 #include <stdio.h> 3 4 int main(void) 5 { 6 int i, num; //计数变量i,测试样例num 7 int one, ten, hundred; //个位、十位、百位 8 9 10 scanf("%d", &num); 11 //根据三种情况分离个位、十位、百位 12 if (num >= 100) 13 { 14 one = num % 10; 15 ten = (num / 10) % 10; 16 hundred = num / 100; 17 } 18 else if (num >= 10) 19 { 20 one = num % 10; 21 ten = num / 10; 22 } 23 else 24 { 25 one = num; 26 } 27 28 //根据不同的情况进行输出 29 if (num >= 100) 30 { 31 for (i = 0; i < hundred; i++) 32 { 33 printf("B"); 34 } 35 } 36 if (num >= 10) 37 { 38 for (i = 0; i < ten; i++) 39 { 40 printf("S"); 41 } 42 } 43 for (i = 1; i <= one; i++) 44 { 45 printf("%d", i); 46 } 47 48 49 return 0; 50 }