1006 换个格式输出整数

#include<stdio.h>
int main(){
    int n;
    char a[100]={0};
    scanf("%d",&n);
    int b=n/100;
    for(int i=0;i<b;i++){
        a[i]='B';
    }
    int s=n/10%10;
    for(int i=b;i<s+b;i++){
        a[i]='S';
    }
    int x=n%100%10;
    int j=1;
    for(int i=b+s;i<s+b+x;i++){
          a[i]=j;
          j++;
    }
    for(int i=0;i<s+b;i++){
    printf("%c",a[i]);
    }
    for(int i=s+b;i<s+b+x;i++){
    printf("%d",a[i]);
    }
} 

自己瞎写的,没想到通过了~但是感觉很不规范,还请指正

 

下面是算法笔记中的写法,很规范~

#include<cstdio>
int main(){
    int n;
    scanf("%d",&n);
    int num=0,ans[5];//num存放n的位数
    while(n!=0){
        ans[num]=n%10;
        num++;
        n=n/10;
    } 
    for(int i=num-1;i>=0;i--){  //从高位到低位枚举
        if(i==2){    //如果是百位
            for(int j=0;j<ans[i];j++){
                   printf("B"); 
           } 
        } else if(i==1){
            for(int j=0;j<ans[i];j++){
                printf("S");
            }
        }else{
            for(int j=1;j<=ans[i];j++){
                printf("%d",j);
            }
        }
    }
    return 0;
} 

其中使用了ans[]数组记录每一位的数值,这个值也是后面字符输出的个数。

posted on 2020-11-03 19:25  CaRpe_DiEm2  阅读(40)  评论(0)    收藏  举报

导航