题目描述
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例
23
输出样例
SS123
解题思路
(1)使用一个整型的数组分别存储输入的各位数字
(2)由于确定输入是一个三位数,使用三个while循环输出指定的字符。
遇到的问题
一开始没有给数组初始化设置为0,导致运行结果错误。
程序源码
#include <iostream>
using namespace std;
int main()
{
int n;
int s[3]={0}; //s0存储个位,s1存储十位,s2存储百位
int i = 0;
cin>>n;
while(n!=0)
{
s[i++]=n%10;
n = n/10;
}
while(s[2]!=0)
{
cout<<'B';
s[2]--;
}
while(s[1]!=0)
{
cout<<'S';
s[1]--;
}
int t = 1;
while(s[0]!=0)
{
cout<<t++;
s[0]--;
}
return 0;
}