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

代码:

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
    int n,tag=0,k=1,a[50]={0}; cin>>n;//读取n的值 
    while(n!=0){
        a[tag]=(n%10);
        tag+=1; 
        n/=10;
    }
    for(int i=tag;i>=0;i--){
        if(i==2){//注意这里非常容易出错,因为数组的下标是从0~1的
        //所以在输出个十百位的时候也要按照数组的下标来输出,这样才不会出错  
        //---***如果怕出错,建议统一数组的下标***---
            while(a[i]--){
                cout<<'B';
            }
        }
        else if(i==1){
            while(a[i]--){
                cout<<'S';
            }
        }
        else if(i==0){
            while(a[i]--){
                cout<<k++;
            }
        }
        
    }
//  cout<<endl;
//  cout<<"The value of tag is "<<tag<<endl<<endl;
//  for(int i=0;i<tag;i++){
//      cout<<a[i]<<endl;
//  }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容