Problem:
４進数

10 進数は現在使われている一般的な記数法で、0、1、2、3、4、5、6、7、8、9 の10 個の記号を用いて全ての数字を表します。

2 進数はコンピュータの世界でよく使われる記数法で、0 と1 の二つの記号を用いて全ての数字を表します。

4 進数で用いられるのは 0、1、2、3 の 4 つの数字だけです。4 進数では 0 から順に数を増やしていったときに 4 まで来たら次の位に桁上がりします。そのため、10 進数の 4 は桁上がりして「10」という表現になります。

10 進数

0

1

2

3

4

5

6

7

8

9

10

...

2 進数

0

1

10

11

100

101

110

111

1000

101

1010

...

4 進数

0

1

2

3

10

11

12

13

20

21

22

...

昔ハワイでは魚やタロイモを指にはさんで数えていたので、10 進数ではなく4 進数を使っていたそうです。

10 進数で入力される整数 n を 4 進数に変換し出力するプログラムを作成してください。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりは -1 ひとつの行で示されます。各データセットとして１つの整数 n (0 ≤ n ≤ 1000000) が１行に与えられます。

データセットの数は 2000 を超えません。

Output

入力データセット毎に 4 進数に変換した結果を１行に出力します。

Sample Input

7
4
0
12
10
10000
-1

Output for the Sample Input

13
10
0
30
22
2130100

Solution in JAVA (judge verdict: Accepted)


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n;
		while(true){
			n=sc.nextInt();
			if(n==-1) break;
			System.out.println(f(n));
		}
	}
	static String f(int n){
		int four[]=new int[10];
		four[0]=1;
		String str="";
		for(int i=1;i<10;i++){
			four[i]=four[i-1]*4;
		}
		for(int i=9;0<=i;i--){
			if(four[i]<=n){
				str=str+Integer.toString(n/four[i]);
				n%=four[i];
			}
			else if(!str.equals("")){
				str=str+"0";
			}
		}
		if(str.equals("")){
			return "0";
		}
		else return str;
	}
}