首页 > 试题广场 >

换个格式输出整数 (15)

[编程题]换个格式输出整数 (15)
  • 热度指数:3386 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234
应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。

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


输出描述:
每个测试用例的输出占一行,用规定的格式输出n。
示例1

输入

234

输出

BBSSS1234
推荐
RNA头像 RNA
import sys
a=''
b=''
c=''
for line in sys.stdin:
    line=line.strip('\n')
    line=int(line)
    print ''.join(['B'*(int(line/100)),'S'*(int(line%100/10)),''.join(map(str,range(1,int(line%100%10)+1,1)))])
    

编辑于 2015-06-18 16:39:15 回复(0)

python solution,两行代码通过:

a = int(input())
print(a//100 * "B" + (a-a//100*100)//10 * "S" + "".join(map(str, range(1, int(str(a)[-1]) + 1))))
编辑于 2017-10-11 09:04:16 回复(1)
#include <iostream>
using namespace std;
int main(){
	int n;
	int b,s,g;
	while(cin>>n){
		b=n/100;
		s=(n-100*b)/10;
		g=n-b*100-s*10;
		for(int i=0;i<b;i++) cout<<"B";
		for(int i=0;i<s;i++) cout<<"S";
		for(int i=1;i<=g;i++) cout<<i;
		cout<<endl;
	}
	return 0;
}

发表于 2017-08-15 22:05:33 回复(0)
#include <stdio.h>

int main(void){
    int n;
    scanf("%d", &n);
    int b = n / 100;
    int s = n / 10 % 10;
    int g = n % 10;
    for(int i = 0; i < b;i++){
        printf("B");
    }
    for(int i = 0; i < s; i++){
        printf("S");
    }
    for(int i = 1; i <= g; i++){
        printf("%d", i);
    }
    
    
    return 0;
} 

发表于 2018-01-23 17:47:59 回复(0)

#include <stdio.h>
char ch[30];
char* change(int num)
{
    int i=0,j=0;
 char tmp[9]={'1','2','3','4','5','6','7','8','9'};
 int n=0;
        j=num/100;
        while(j!=0)
        {
            ch[i]='B';
   i++;
   j--;
        }
      
        j=(num%100)/10;
        while(j!=0)
        {
            ch[i]='S';
   i++;
   j--;
        }
     
        j=num%10;
        while(j!=0)
        {
            ch[i]=tmp[n];
   i++;
   n++;
   j--;
   
        }
        ch[++i]='\0';
  return ((char*)ch);

}
int main()
{
 int number;
 int i;
 scanf("%d",&number);
 
  
 change(number);
 for(i=0;i<=10;i++)
   {
       printf("%c\t",ch[i]);
       printf("\n");
   }
    return 0;
}

   

发表于 2015-06-02 19:24:40 回复(3)
function sb(n){
  var arr = [0,"S","B"],str="",a = n.toString().split("").reverse();
  for(var i = a.length;i--;){
    var s = "";
    for(var l = ++a[i];--l;){
      s = (arr[i]||l) + s;
    }
    str +=s;
  }
  return str;
}

发表于 2015-05-27 09:35:15 回复(0)
#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,index=0;
	char a[20];
	cin>>n;
	int k=n%10;
	for(int i=k;i>0;i--){
		a[index++]=i+'0';
	}
	int l=n/10%10;
	for(int i=0;i<l;i++){
		a[index++]='S';
	}
	int m=n/100;
	for(int i=0;i<m;i++){
		a[index++]='B';
	}
	for(int i=index-1;i>=0;--i){
		cout<<a[i];
	}
	return 0;
}

发表于 2022-11-05 17:33:51 回复(1)
#include <stdio.h>
 
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        while(n>=100)
        {
            printf("B");
            n-=100;
        }
        while(n>=10)
        {
            printf("S");
            n-=10;
        }
        for(int i=1;i<=n;i++)
            printf("%d",i);
        printf("\n");
    }
    return 0;
     
}

发表于 2020-04-12 16:26:52 回复(0)


水吧,切瓜砍菜。。。
拆出百位十位个位,按照规则输出即可。

#include <iostream>
(720)#include <cstring>
using namespace std;

int main() {
    int n = 0;
    while (scanf("%d", &n) != EOF) {
        if (n > 99) {
            //输出百位
            for (int i = n / 100; i > 0; --i) {
                printf("B");
            }
            n %= 100;
        }
        if (n > 9) {
            //输出十位
            for (int i = n / 10; i > 0; --i) {
                printf("S");
            }
            n %= 10;
        }
        if (n > 0) {
            //输出各位
            for (int i = 1; i <= n; ++i) {
                printf("%d", i);
            }
        }
        printf("\n");
    }
    return 0;
}
————————————————
版权声明:本文为CSDN博主「hestyle」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://hestyle.blog.csdn.net/article/details/104759582
发表于 2020-03-09 19:54:04 回复(0)
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int n;
    while(~scanf("%d", &n))
    {
        int ge = n % 10;
        int shi = (n % 100) / 10;
        int bai = n / 100;
        while(bai--)
            printf("B");
        while(shi--)
            printf("S");
            int i = 1;
        while(ge--)
            printf("%d", i++);
        printf("\n");
    }
    return 0;
}

编辑于 2020-03-04 20:26:39 回复(0)
#include<iostream>
using namespace std;

int main() {
	int Sn,Bn,Gn,N;
	cin>>N;
	Bn=N/100;
	Sn=N/10%10;
	Gn=N%10;
	while(Bn--)cout<<"B";
	while(Sn--)cout<<"S";
	for(int i=1;i<=Gn;i++)cout<<i;
    return 0;
}

发表于 2020-01-31 21:28:35 回复(0)
#include<iostream>
#include<vector>

using namespace std;
void huangegeshishuchuzhengshu() {
	vector<int> q(3,0),q2;
	int n;
	cin >> n;
	int i = 0;
	//string s={"百","十"}
	while (n != 0) {
		q[i++]=n%10;
		n /= 10;
	}
	auto pd = q.crbegin();
	while (pd != q.crend()) {
		q2.push_back(*pd++);
		
	}
	for (int i = 0; i < q2.size(); i++) {
		if (i == 0) {
			for (int j = 0; j < q2[i]; j++) {
				cout << "B";
			}
		}
		if (i == 1){
			for (int j = 0; j < q2[i]; j++) {
				cout << "S";
			}
		}
		if (i == 2) {
			for (int j = 0; j < q2[i]; j++) {
				cout << j + 1;
			}
		}
	}

}//234
int main()
{
	// helloworldforu();
	huangegeshishuchuzhengshu();
	return 0;
}

发表于 2020-01-26 13:43:41 回复(0)
import java.util.*;

//thinking: input num, to char array, get lenth, use while to loop, i++, j++
public class ChangeFormat {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    String num = s.next();
    s.close();
    char[] num_char = num.toCharArray();
    String re = "";
    int len = num_char.length;
    int line = 0;
    while (len > 0) {
      if (len == 1) {
        for (int i = 0; i < num_char[line] - '0'; i++) {
          re += Integer.toString(i + 1);
        }
      } else if (len == 2) {
        for (int i = 0; i < num_char[line] - '0'; i++) {
          re += "S";
        }
      } else if (len == 3) {
        for (int i = 0; i < num_char[line] - '0'; i++) {
          re += "B";
        }
      }
      len--;
      line++;
    }
    System.out.println(re);
  }
}

发表于 2019-10-14 11:42:32 回复(0)
#include <iostream>
using namespace std;

int main() {
    int n; cin >> n;
    if (n / 100 != 0) 
        for (int i = 0; i < n / 100; ++i)
            cout << "B";
    if ((n % 100) / 10 != 0)
        for (int i = 0; i < (n % 100) / 10; ++i)
            cout << "S";
    if (n % 10 != 0)
        for (int i = 0; i < n % 10; ++i)
            cout << i + 1;
    return 0;
}

发表于 2019-04-02 17:27:24 回复(0)
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    string s;
    cin>>s;
    int sz=s.size();
    int k=0;
    if(sz>=3)
        {
        for(int i=0;i<s[k]-'0';i++)
        {
            cout<<'B';
        }
        k++;
        }
    if(sz>=2)
    {
        for(int i=0;i<s[k]-'0';i++)
        {
            cout<<'S';
        }
        k++;
    }
    if(sz>=1)
    {
        for(int i=1;i<=s[k]-'0';i++)
        {
            cout<<i;
        }
    }
    cout<<endl;
}

发表于 2019-03-29 20:23:23 回复(0)
#include<iostream> 
#include<cstdlib>
#include<string>

using namespace std;

//1006 换个格式输出整数
//你又不说个位为0怎么办,输出0还是不管???

int main() {
    int n;
    string a = "";
    
    cin>>n;
    if(n%10){ //个位存在
        for(int i=1;i<=n%10;i++){
            a += i+'0';
        }
    }

    n=n/10;
    if(n%10){//十位存在
            a.insert(0,n%10,'S');  //插入指定个数的字符
    }

    n=n/10;
    if(n%10){//百位存在
            a.insert(0,n%10,'B');
    }

    cout<<a;
    
    return 0;
}

发表于 2018-12-31 12:31:01 回复(0)
#include <iostream>
using namespace std;
int main()
{
    int n ;
    cin>>n ;
    int a,b,c ;
    c = n%10 ;
    n = n/10 ;
    b = b%10 ;
    n = n/10 ;
    a = n ;
    int i ;
    for( i=0 ; i<a ; ++i )
    {
        cout<<"B" ;
    }
    for( i=0 ; i<b ; i++ )
    {
        cout<<"S" ;
    }
    for( i=0 ; i<c ; ++i )
    {
        cout<<i+1 ;
    }
    cout<<endl ;
    return 0;
}


//测试用例:99不通过,不知道哪里有问题,求教

发表于 2018-12-04 21:02:23 回复(0)
思路:按部就班。
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    int n;
    while (cin >> n)
    {
        int temp = 0;
        int count = 0;
        vector<string> v;
        
        while (n != 0)
        {
            temp = n % 10;
            n = n / 10;
            count++;
            string tempStr;
            switch (count)
            {
            case 1:
                
                for (int i = 0; i < temp; i++)
                {
                    tempStr += '1' + i;
                }
                //cout << tempStr << endl;
                v.push_back(tempStr);
                break;
            case 2:
                for (int i = 0; i < temp; i++)
                {
                    v.insert(v.begin(), "S");
                }
                break;
            case 3:
                for (int i = 0; i < temp; i++)
                {
                    v.insert(v.begin(), "B");
                }
                break;
            }
        }
        for (int i = 0; i < v.size(); i++)
        {
            cout << v[i];
            if (i == v.size() - 1)
            {
                cout << endl;
            }
        }

    }
}

发表于 2018-08-13 22:53:15 回复(0)
function printNum(number){
            let num = parseInt(number);
            if(num>1000){
                alert('请输入不超过3位的正整数!');
                return false;
            }
            var hundred = (num/100);
            var decade = (num%100)/10;
            var units = num%10;
            var str='';
            for(let i = 1;i<=hundred;i++){
                str+='B'
            }
            for(let i = 1;i<=decade;i++){
                str+='S'
            }
            for(let i = 1;i<=units;i++){
                str+=i
            }
            console.log(str);
            return str;
        }

也不知道哪里错了 一直过不去 但是自己运行都是好的呀
发表于 2018-06-08 11:56:33 回复(0)
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int b = n / 100;      //百位
    int s = (n%100) / 10; //十位
    int g = n % 10;       //个位
    while (b--)
        cout<<'B';
    while (s--)
        cout<<'S';
    for (int i=1; i<=g; i++)
        cout<<i;
    cout<<endl;

    system("pause");
    return 0;
}

发表于 2018-01-22 18:39:54 回复(0)
//又是这种简单的题目,微笑微笑
s0 = input()
s = ''
if len(s0)==1:
    for i in range(1, int(s0[0])+1):
        s += str(i)
elif len(s0)==2:
    s += int(s0[0])*'S'
    for i in range(1, int(s0[1])+1):
        s += str(i)
     
else:
    s += int(s0[0])*'B'
    s += int(s0[1])*'S'
    for i in range(1, int(s0[2])+1):
        s += str(i)
print(s)

发表于 2017-12-12 15:04:07 回复(0)