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
结尾无空行
思路
利用string类,在循环的基础上利用.append() 函数进行添加B与S,利用ASCII码的规律,char类型的数字字符有如下规律
‘1’ + 1 = ‘2’
最后利用.push_back()函数进行添加字符最终输出结果
代码如下
#include<iostream>
using namespace std;
string translate(int input_n) {
string ans = "";
char n = '1';
for (int i = 0; i < (input_n / 100); i++) {
ans.append("B");
}
input_n = input_n % 100;
for (int i = 0; i < (input_n / 10); i++) {
ans.append("S");
}
input_n = input_n % 10;
for (int i = 0; i < (input_n / 1); i++) {
ans.push_back(n);
n++;
}
return ans;
}
int main() {
int n;
cin >> n;
cout << translate(n);
}