1006 换个格式输出整数 (15 分)
让我们用字母
B
来表示“百”、字母
S
表示“十”,用
12...n
来表示不为零的个位数字
n
(<10),换个格式来输出任一个不超过 3 位的正整数。例如
234
应该被输出为
BBSSS1234
,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123解题思路:
题目很好理解,可以根据是1个数、2个数还是3个数来处理,1个数直接遍历输出即可,2个数的话,十位上的数字乘以S再加上遍历个位数的数,3位数,百位上的数字乘以B加上十位上的数字乘以S再加上个位遍历输出就可以。
程序代码1(C语言):
#include<stdio.h>
int main()
{
int num;
int ge, shi, bai;
int i;
scanf("%d", &num);
bai = num / 100; #百位数字
shi = num / 10 % 10; #十位数字
ge = num % 10; #个位数字
for (i=0; i<bai; i++)
{
printf("B");
}
for (i=0; i<shi; i++)
{
printf("S");
}
for (i=1; i<=ge; i++)
{
printf("%d", i);
}
return 0;
}程序代码2(Python):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/10 14:53
# @Author : suxiaorui
def gewei(n):
for i in range(1,n+1):
print(i, end='')
num =list(map(int,input()))
length = len(num)
if length == 1:
gewei(num[0])
elif length == 2:
print(num[0] * 'S',end='')
gewei(num[1])
else:
print(num[0] * 'B' + num[1] * 'S',end='')
gewei(num[2])
程序代码3(Python):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/10 15:21
# @Author : suxiaorui
a = int(input())
print(a//100 * "B" + (a-a//100*100)//10 * "S" + "".join(map(str, range(1, int(str(a)[-1]) + 1))))

发布评论