思路:对整数取模,再除以10,存取各位数值到数组中(只有三位)。然后百位、十位、个位分别输出相应要求的东西。
注意:正整数n小于1000,所以每一位数字只会在0~9之间。如果while判断没有a[2]<=9,有可能n是十位数,a[2]没有值,存的是垃圾数据,这样就会输出很多的B。
代码:
#include<stdio.h>
int main(){
int n,a[3],j,i=0;
scanf("%d",&n);
while(n!=0){
a[i++]=n%10;
n/=10;
}
while(a[2]>0&&a[2]<=9){
printf("B");
a[2]--;
}
while(a[1]>0&&a[1]<=9){
printf("S");
a[1]--;
}
for(i=1;i<=a[0];i++){
printf("%d",i);
}
return 0;
}
二刷代码:
#include<stdio.h>
int main(){
int n,b,s,g,i = 1;
scanf("%d",&n);
b = n/100;
g = n%10;
s = n/10%10;
while((b--)!=0){
printf("B");
}
while((s--)!=0){
printf("S");
}
while((g--)!=0){
printf("%d",i++);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。