PAT_B_1006 换个格式输出整数

题目描述:

让咱们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,由于它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式:
每一个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

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

输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123

AC代码:

# include <stdio.h>

int main(void)
{
	int val;   //  记录输入的数据
	scanf("%d",&val);
	int Hun = 0, Ten = 0, Num = 0; 
	int i;
	
	if (val >= 100)
	{
		Hun = val/100;
		Ten = (val - Hun*100)/10;
		Num = val % 10;
	}
	else if (val >= 10)
	{
		Ten = val/10;
		Num = val%10;
	}
	else
		Num = val;
		
	for (i=0; i<Hun; i++)
	{
		printf("B");
	}
	for (i=0; i<Ten; i++)
	{
		printf("S");
	}
	for (i=0; i<Num; i++)
	{
		printf("%d",i+1);
	}
	
	return 0;
}

python代码:

# 换个格式输出
num = int(input())
# 输出百位
H = int(num/100)
num %= 100
for i in range(H):
            print("B", end="") # 控制不换行输出
# 输出十位
T = int(num/10)
num %= 10
for i in range(T):
            print("S", end="") # 控制不换行输出
# 输出个位
for i in range(num):
            print(i+1, end="") # 控制不换行输出

改进后代码:

//  换个格式输出整数 (15 分)
# include <stdio.h>

int main(void)
{
	int n, i;   //  记录输入的数据
	scanf("%d",&n);
	int Hun = 0, Ten = 0, Num = 0; 

	Hun = n/100;
	n %= 100;
	for (i=0; i<Hun; i++)
		printf("B");
	
	Ten = n/10;
	n %= 10;
	for (i=0; i<Ten; i++)
		printf("S");
	
	Num = n;
	for (i=0; i<Num; i++)
		printf("%d",i+1);
	
	return 0;
}
相关文章
相关标签/搜索