admin管理员组

文章数量:1516870

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))))

本文标签: 程序代码编程字母