本文主要是介绍1006换个格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
新手小白又来啦。
做题的第三天,写博客记录自己的做题历程。
1006 换个格式输出整数 (15 分)
让我们用字母 B
来表示“百”、字母 S
表示“十”,用 12...n
来表示不为零的个位数字 n
(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234
应该被输出为 BBSSS1234
,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123
这道题给我的感觉是很简单的,但我想用高级的方法,却没有什么头绪
大致思路: 本想学第四题直接用字符,但是没法找到最大位数,又想借用一下sprintf_s(),将数字格式化为字符。分别用i,j,k来接收个十百位上的数字,以做出对应的输出。但是本质上还是没有确定最大位数,所以还是选择用pow来确定最大位数h,然后通过sprintf_s来获得。。。
。。。
突然发现上面一堆说的乱七八糟,思考了个寂寞,我可以直接将数字存下来之后,再依次除以100,10,1,获得对应数位上的i,j,k然后作对应输出。脑子不清醒,想得太混乱了。
#include<iostream>
using namespace std;
int main(){int n;cin>>n;int i=n/100;int j=n%100/10;int k=n%10;while(i>0){cout<<"B";i--;}while(j>0){cout<<"S";j--;}for(int h=1;h<=k;h++){cout<<h; }return 0;
}
去看一下别人的优秀的代码。
翻了翻,差不多都是这种办法,下一题!
这篇关于1006换个格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!