PAT-B 1006 換個格式輸出整數【遞迴列印】

Enjoy_process發表於2019-02-16

                                         PAT-B 1006 換個格式輸出整數

                        https://pintia.cn/problem-sets/994805260223102976/problems/994805318855278592

 

 

題目

讓我們用字母 B 來表示“百”、字母 S 表示“十”,用 12...n 來表示不為零的個位數字 n(<10),換個格式來輸出任一個不超過 3 位的正整數。例如 234 應該被輸出為 BBSSS1234,因為它有 2 個“百”、3 個“十”、以及個位的 4。

輸入

每個測試輸入包含 1 個測試用例,給出正整數 n(<1000)。

輸出

每個測試用例的輸出佔一行,用規定的格式輸出 n。

樣例輸入

234

樣例輸出

BBSSS1234

分析

遞迴列印,具體看程式。

C++程式

#include<iostream>

using namespace std;

void print(int n,int tag)
{
	if(n)
	{
		print(n/10,tag+1);
		for(int i=1;i<=n%10;i++)
		{
			if(tag==1)//個位 
			  printf("%d",i);
			else if(tag==2)//十位 
			  printf("S");
			else if(tag==3)//百位 
			  printf("B");
		}
	}
}

int main()
{
	int n;
	scanf("%d",&n);
	print(n,1);
	printf("\n");
	return 0;
} 

 

相關文章