先得出输入的数的位数,题目保证位数<4,然后分情况讨论,比如如果这个数是三位,那么B的数量就是百位上的那个数,S就是十位上的那个数,个位一个循环搞定
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int get_num(int n)
{
if(n==0) return 1;
int cnt=0;
int t=n;
while(t)
{
t/=10;
cnt++;
}
return cnt;
}
int main()
{
int N;
cin>>N;
int num=get_num(N);
if(num==3)
{
int n1=N,n2=N,n3=N;
int cntb=0,cnts=0;
cntb=n1/100;
cnts=(n2-cntb*100)/10;
//cout<<cntb<<' '<<cnts;
for(int i=0;i<cntb;i++) cout<<'B';
for(int j=0;j<cnts;j++) cout<<'S';
int gewei=n3%10;
for(int k=1;k<=gewei;k++) cout<<k;
}
if(num==2)
{
int n1=N,n2=N;
int cnt=0;
cnt=n1/10;
for(int i=0;i<cnt;i++) cout<<'S';
int gewei=n2%10;
for(int k=1;k<=gewei;k++) cout<<k;
}
if(num==1)
{
for(int k=1;k<=N;k++) cout<<k;
}
return 0;
}
本文介绍了一个数字转换程序,该程序能够根据输入数字的位数,将数字转换为特定的字符序列。具体而言,程序首先计算输入数字的位数,然后根据不同位数进行处理:对于三位数,分别计算百位、十位和个位的值,并将其转换为'B'、'S'和数字字符;对于两位数,计算十位和个位,转换为'S'和数字字符;对于一位数,直接转换为相应的数字字符。
322

被折叠的 条评论
为什么被折叠?



