PAT 乙级 (Basic Level) Practice (中文)1006

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

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

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

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

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

输出样例 2:

SS123

代码

#include <cstdio>
int main () {
	int ans[5] ,n ,num=0 ;  				//ans数组存储每位上的数字 
	scanf ("%d", &n) ;
	while (n!=0) {
		ans[num] = n%10 ;	
		num ++ ;
		n = n/10 ;
	}
	for (int i=num-1; i>=0; i--) { 			//从高到低位来输出 
		if (i==2) {							//百位 
			for (int j=0; j<ans[2]; j++) {
				printf ("B") ;
			}	
		} else if (i==1) {					//十位 
			for (int j=0; j<ans[1]; j++) {
				printf ("S") ;
			}
		} else {							//个位 
			for (int j=0; j<ans[0]; j++) {
				printf ("%d", j+1) ;
			}
		}
	}
	return 0 ;
}

猜你喜欢

转载自blog.csdn.net/arthur01p/article/details/86594031