一、题目
让我们用字母 B
来表示“百”、字母 S
表示“十”,用 12...n
来表示不为零的个位数字 n
(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234
应该被输出为 BBSSS1234
,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
二、思路
1.根据首先分析格式,百位数用B,十位数用S,个位数输出1到个位数
2.判断几位数,我这里使用string进行录入便于提取,只要用size()就能分析是几位数。
3.循环根据位数来打印相应的格式
三、代码实现
#include <iostream>
using namespace std;
#include <string>
int main()
{
//用户输入
string num;
cin >> num;
//输出库
string str = "1SB";
//从最高位进行打印,动态进行分辨
for(int i = num.size()-1,j = 0;i >= 0; i--, j++)
{
//数字转换
int temp_num = num[j] - '0';
//假如是个位数的时候
if( i == 0)
{
//打印从1到个位数
for(int o = 1; o <= temp_num; o++)
{
cout << o;
}
break;
}
//根据位数进行打印
for(int k = 0; k < temp_num; k++)
{
cout << str[i];
}
}
}