注册 登录
编程论坛 C语言论坛

有三个点过去不

Knightl8 发布于 2020-03-22 11:10, 1423 次点击
没法大佬看看
题目网址:https://
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

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

输入样例 1:
234

输出样例 1:
BBSSS1234

输入样例 2:
23
输出样例 2:
SS123

我的代码
程序代码:

#include <stdio.h>
int main(void)
{
    int num,i,j,k;
    scanf("%d",&num);
    int bai=num/100;
    int shi=(num-bai*100)/10;
    int ge=num%10;
    for(i=0;i<bai;i++)
    {
        printf("B");
    }
    for(j=0;j<shi;j++)
    {
        printf("S");
    }
    if(ge==0)
    {
        printf("%d",ge);
    }
    else
    {
        for(k=1;k<=ge;k++)
        {
            printf("%d",k);
        }
    }


   
    return 0;
   
   
}
2 回复
#2
lin51616782020-03-22 11:15
个位0的特殊处理去掉
如果是 10
输出应该是 S
不是S0
#3
Knightl82020-03-22 18:03
回复 2楼 lin5161678
确实是,谢谢了
1