admin 管理员组文章数量: 1184232
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))))版权声明:本文标题:非同寻常的数字游戏:轻松实现整数格式变换。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1772078801a3551876.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论