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;
}
相關文章
相關標籤/搜索