板栗说算法 之 PAT 乙级 1006 换个格式输出整数(全方面解析)

一、题目

让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式:

每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

输出格式:

每个测试用例的输出占一行,用规定的格式输出 n。

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

二、思路 

1.根据首先分析格式,百位数用B,十位数用S,个位数输出1到个位数

2.判断几位数,我这里使用string进行录入便于提取,只要用size()就能分析是几位数。

3.循环根据位数来打印相应的格式

三、代码实现

#include <iostream>
using namespace std;

#include <string>

int main()
{
    //用户输入
    string num;
    cin >> num;
    
    //输出库
    string str = "1SB";
    
    //从最高位进行打印,动态进行分辨
    for(int i = num.size()-1,j = 0;i >= 0; i--, j++)
    {
        //数字转换
        int temp_num = num[j] - '0';
        
        //假如是个位数的时候
        if( i == 0)
        {
            //打印从1到个位数
            for(int o = 1; o <= temp_num; o++)
            {
                cout << o;
            }
            break;
        }
        
        //根据位数进行打印
        for(int k = 0; k < temp_num; k++)
        {
            cout << str[i];
        }
    }
    
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章