0
点赞
收藏
分享

微信扫一扫

1006换个格式

和谐幸福的人生 2022-02-13 阅读 73
c++

新手小白又来啦。

做题的第三天,写博客记录自己的做题历程。

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;
}

去看一下别人的优秀的代码。

翻了翻,差不多都是这种办法,下一题!

 

举报

相关推荐

0 条评论