天天看點

PAT Basic1006 1006. 換個格式輸出整數 (15)

1006. 換個格式輸出整數 (15)

時間限制 400 ms

記憶體限制 32000 kB

代碼長度限制 8000 B

判題程式 Standard 作者 CHEN, Yue

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

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

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

輸入樣例1:

234
      

輸出樣例1:

BBSSS1234
      

輸入樣例2:

23
      

輸出樣例2:

SS123      
package source.PTA;

import java.util.Scanner;

public class PTA1006 {
	private int data;
	private String bit[] = {"","S","B","Q","W","A","V","Z","Y"};
	private boolean flag;
	private StringBuilder temp;
	private int index;
	
	public PTA1006(int data)
	{
		this.data = data;
		this.flag = true;
		index = 0;
		
	}
	public void getOutput(int data)
	{
		int a = data % 10;
		if (0 == data)
		{
			return;
		}
		data /= 10;
		if(flag)
		{
			flag = false;
			index++;
			temp = new StringBuilder() ;
			for(int i = a; i > 0; i--)
			{
				temp.append(i);
			}
			getOutput(data);
			
		}
		else
		{
			for(int i = 0; i < a; i++)
			{
				temp.append(bit[index]);
			}
			index++;
			getOutput(data);
			}
			
	}
	public String getString()
	{
		return temp.reverse().toString();
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int data = sc.nextInt();
		PTA1006 test = new PTA1006(data);
		test.getOutput(data);
		System.out.println(test.getString());
	}

}