让我们用字母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 |
题目没有难度,但是有一个小坑……只要不想当然或者认真读题即可绕过。我第一遍做时,在个位数为0时输出了0,所以第3、4、5个测试点就没有过,题目要求的是使用“12…n”来表示个位数字n,并没有0,注意就好。
代码如下:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include<stdio.h> main() { int n,i,countb,counts,countg; scanf("%d",&n); if(n>=100) { countg=n%10; counts=(n/10)%10; countb=(n/100)%10; while(countb>0) { printf("B"); countb--; } while(counts>0) { printf("S"); counts--; } for(i=1;i<=countg;i++) { printf("%d",i); } printf("\n"); } else if(n<100&&n>9) { countg=n%10; counts=(n/10)%10; while(counts>0) { printf("S"); counts--; } for(i=1;i<=countg;i++) { printf("%d",i); } printf("\n"); } else if(n<10&&n>0) { countg=n%10; for(i=1;i<=countg;i++) { printf("%d",i); } printf("\n"); } return 0; } |