case:
#include<stdio.h>
int main()
{
int n,i=0,j;
int a[100];
scanf("%d",&n);
while(n>0)
{
a[i]=n%10;
n=n/10;
i++;
}
switch (i)
{
case 1:
for(int k=1;k<=a[0];k++)
{
printf("%d",k);
}
break;
case 2:
for(int k=1;k<=a[1];k++)
{
printf("S");
}
for(int k=1;k<=a[0];k++)
{
printf("%d",k);
}
break;
case 3:
for(int k=1;k<=a[2];k++)
{
printf("B");
}
for(int k=1;k<=a[1];k++)
{
printf("S");
}
for(int k=1;k<=a[0];k++)
{
printf("%d",k);
}
break;
}
return 0;
}
二刷
没看题解,独立完成:
if else
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int x=0;cin>>x;
vector<int>a;
while(x)
{
a.push_back(x%10);
x/=10;
}
if(a.size()==1)
{
int ge=a[0];
for(int i=1;i<=ge;i++)
{
cout<<i;
}
}
else if(a.size()==2)
{
int shi=a[1];
int ge=a[0];
for(int i=0;i<shi;i++)
{
cout<<'S';
}
for(int i=1;i<=ge;i++)
{
cout<<i;
}
}
else if(a.size()==3)
{
int bai=a[2];
int shi=a[1];
int ge=a[0];
for(int i=0;i<bai;i++)
{
cout<<'B';
}
for(int i=0;i<shi;i++)
{
cout<<'S';
}
for(int i=1;i<=ge;i++)
{
cout<<i;
}
}
return 0;
}
不知道为什么这样写就错了:
#include<bits/stdc++.h>
using namespace std;
void sovel(vector<int>ans)
{
if (ans.size() == 1)
{
int ge = ans[ans.size() - 1];
for (int i = 1; i <= ge; i++)cout << i;
}
else if (ans.size() == 2)
{
int shi = ans[1];
while (shi--)cout << "S";
int ge = ans[ans.size() - 1];
for (int i = 1; i <= ge; i++)cout << i;
}
else if (ans.size() == 3) {
int bai = ans[0];
while (bai--)cout << "B";
int shi = ans[1];
while (shi--)cout << "S";
int ge = ans[ans.size() - 1];
for (int i = 1; i <= ge; i++)cout << i;
}
}
int main()
{
vector<int>ans;
int x; cin >> x;
if (x == 0)
{
cout << 0;
return 0;
}
while (x)
{
ans.push_back(x % 10);
x /= 10;
}
reverse(ans.begin(), ans.end());
sovel(ans);
return 0;
}