pat乙级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
平平无奇的一道题目,有两个点需要注意:
1.string变量初始化时:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1;
string s2 = "string";
string s3 = s2;
string s4 (10, s);
return 0;
}
直接string s4 (10, s);不是string s4 = (10, s);
2.再次提醒,C语言不能连着两个比较符号。像这道题因为前面if里已经有<10了,else if里只需要<100就行。
3.关于int和string的互相转化:
源代码:
#include <iostream>
#include <string>
using namespace std;
string ge(int g){
string back="";
for(int i=1;i<(g+1);i++){
back += to_string(i);
}
return back;
}
string shi(int s){
string back(s,S);
return back;
}
string bai(int b){
string back(b,B);
return back;
}
int main(){
int in;
string out;
scanf("%d", &in);
int g = in%10;
int s = (in%100)/10;
int b = (in-10*s-g)/100;
if(in<10){
out = ge(g);
}
else if(in<100){
out = shi(s) + ge(g);
}
else if(100<in){
out = bai(b) + shi(s) + ge(g);
}
cout<<out;
return 0;
}
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~
下一篇:
最近一些的有意思的思考-记录成长
