本题主要使用栈的先进后出来满足输出顺序,在用switch case来满足输出B,S或者123n;
#include<stdio.h>
#include <iostream>
#include<stack>
using namespace std;
int main()
{
int n;
cin >> n;
stack<int> s;
int temp,i;
int A=0;//记录输入是几位
while (n>0)
{
temp = n % 10;
n = n / 10;
s.push(temp);
A++;
}
while (!s.empty())
{
temp = s.top();
switch (A)
{
case 1:
for (i = 0;i < temp;i++)
cout << i+1;
break;
case 2:
for (i = 0;i < temp;i++)
cout << "S";
break;
case 3:
for (i = 0;i < temp;i++)
cout << "B";
break;
}
s.pop();
A--;
}
}