让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
每个测试用例的输出占一行,用规定的格式输出 n。
234 23
SS123 BBSSS1234
这道题思路很简单,数字用字符串形式输入,方便分离每一位,也可以输入数字再通过分离各位数字。 如果是以字符串形式输入需要注意: 1.如果将字符直接转化为整型,会转为字符对应的ascii码,应在格式转化后减去48 2.数字输入的顺序是百位、十位、个位,如果直接一一对应,百位和各位的顺序会反
#include<iostream> using namespace std; int main() { string num; cin >> num; int len = num.length(); int a[3] = {0}; for (int i = len-1,j=0; i >= 0; i--,j++) a[j] = int(num[i])-48; for (int i = 1; i <= a[2]; i++) cout << 'B'; for (int i = 0; i < a[1]; i++) cout << 'S'; for (int i = 1; i <= a[0]; i++) cout << i; return 0; }