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

Submitted solutions:

code_snippet: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>

using namespace std;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define fi first
#define se second

#define PI acos(-1.0)
#define INF 1000000007
#define EPS 1e-10

typedef long long ll;
typedef pair<ll, ll> P;
typedef pair<double, double> PD;
typedef pair<string, ll> PS;
typedef vector<ll> V;

string ans;
int n;

string changes(int n){
	stringstream ss;
	string res;
	ss << n;
	ss >> res;
	return res;
}

int main(){

	while (cin >> n&&n!=-1){
		if (n == 0){
			cout << 0 << endl;
			continue;
		}
		bool f = 0;
		if (n == -1)break;
		for (int i = 9; i >= 0; i--){
			int a = 0;
			if (n >= pow(4, i)){
				a = n / pow(4, i);
			}
			if (a != 0)f = 1;
			if (f){
				ans += changes(a);
				n -= a*pow(4, i);
			}
			//cout << n << " " << a << endl;
		}
		cout << ans << endl;
		ans.clear();
	}
}
accuracy: 1
time_ms: 10
memory_kb: 1264
final_rank: 10

code_snippet: #include<bits/stdc++.h>
using namespace std;
typedef long long int lli;

int main(){
  lli n;
  const int maxi = 1e5;
  while(std::cin >> n, n != -1){
    vector<int> digit(100000, 0);
    for (int i = 0; i < n; i++) {
      int p = 0;
      digit[0]++;
      while(digit[p] == 4){
        digit[p] = 0;
        digit[p + 1]++;
        p++;
      }
    }
    bool flag = true;
    for (int i = maxi - 1; i >= 0; i--) {
      if(digit[i] == 0 and flag)continue;
      flag = false;
      std::cout << digit[i];
    }
    if(flag == true)std::cout << 0 << std::endl;
    else std::cout << std::endl;
  }
    
  return 0;
}
accuracy: 1
time_ms: 130
memory_kb: 1584
final_rank: 11

code_snippet: #include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;

int main(){
	int N;
	while(cin>>N,~N){
		ll ans=0;
		for(int i=0;i<N;i++){
			ans++;
			for(ll j=1; ans/j%10==4; j*=10) ans += j*6;
		}
		printf("%lld\n",ans);
	}
	return 0;
}
accuracy: 1
time_ms: 20
memory_kb: 1136
final_rank: 3

code_snippet: #include<iostream>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<string>
#include<vector>
#include<list>
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<cstring>
#include<stack>
#include<functional>
using namespace std;
typedef long long ll;

int main(){
	int N;
	while(cin>>N,~N){
		ll ans=0;
		for(int i=0;i<N;i++){
			ans++;
			for(ll j=1; ans/j%10==4; j*=10) ans += j*6;
		}
		printf("%lld\n",ans);
	}
	return 0;
}
accuracy: 1
time_ms: 20
memory_kb: 1136
final_rank: 3

code_snippet: // #define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <cstdlib>
#include <functional>
#include <locale>
#include <cctype>
#include <sstream>
using namespace std;

typedef long long LL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef map<int, int> MAPII;
typedef map<double, int> MAPDI;
typedef vector<pair<int, int> > VPII;
typedef multimap<int, string, greater<int> > MuMAPIS;

#define MP make_pair
#define fastIO	cin.tie(0); ios::sync_with_stdio(false);
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
//for gcc (未test)
// #define FOREACH_IT(it,c)	for(typeof(c)::iterator it=(c).begin(); it!=(c).end(); ++it)
//for Visual Studio
#define foreach_it(type,it,c) for(type::iterator it=c.begin(), c_end=c.end(); it!=c_end; ++it)

// ------------------- include, typedef, define END. -------------------

void Output(stack<int> &ans){
	while (!ans.empty()){
		cout << ans.top();
		ans.pop();
	}
	cout << endl;
}

int main(){
	int n=4;
	int in;
	while (cin >> in, in>=0){
		stack<int> ans;
		while (in >= n){
			// nで割り切れる限りループ
			ans.push(in%n);
			in /= n;
		}
		ans.push(in);
		Output(ans);
	}
	return 0;
}
accuracy: 1
time_ms: 10
memory_kb: 1200
final_rank: 6

code_snippet: #include <iostream>
using namespace std;

int main() {
  int n;
  while(cin >> n && (n>=0)) {
    string s;
    while(n>0) {
      s=(char)('0'+n%4)+s;
      n/=4;
    }
    if(s=="")s="0";
    cout << s << endl;
  }
  return 0;
}
accuracy: 1
time_ms: 10
memory_kb: 1204
final_rank: 8

code_snippet: #include<iostream>
#include<algorithm>
#include<string>
#include<stack>
#include<cstdio>
#include<map>
#include<functional>
#include <sstream>

using namespace std;

string ans;

string IntToString(int number)
{
    stringstream ss;
    ss << number;
    return ss.str();
}


string sinsuu(int n){
    ans += IntToString(n%4);
    if (n==0){
        ans="0";
        return ans;
    }
    else if( (n/4) < 4 ){
        if ( (n/4) > 0 ) {
            ans += IntToString(n/4);
        }
        reverse( ans.begin(), ans.end());
        return ans;
    }
    else{
        n = n/4;
        return sinsuu(n);
    }
}

int main(){
	int n;
    while (1)
    {
        cin>>n;
        if(n<0)break;
        cout<<sinsuu(n)<<endl;
        ans.clear();
        
    }
	return 0;
}
accuracy: 1
time_ms: 10
memory_kb: 1220
final_rank: 9

code_snippet: #include <iostream>
using namespace std;

long int pow(int x, int y)
{
  long int result = 1;
  for (int i=0; i<y; i++)
  {
    result *= x;
  }
  return result;
}

long int dec_to_4(int x)
{
  long int result = 0;
  for (int i=0; x != 0 ;i++)
  {
    result += (x % 4) * pow(10, i);
    x /= 4;
  }
  return result;
}

int main()
{
  while(true)
  {
    int num;
    cin >> num;
    if ( num == -1 ) break;

    cout << dec_to_4(num) << endl;
  }
}
accuracy: 1
time_ms: 10
memory_kb: 1156
final_rank: 1

code_snippet: #include <iostream>

using namespace std;

void dfs(int n) 
{
    if (n != 0) {
        dfs(n / 4);
        cout << n % 4;
    }        
}

int main()
{
    int n;

    while (cin >> n, n != -1) {
        if (n == 0)
            cout << 0;
        else
            dfs(n);
        cout << endl;
    }

    return 0;
}
accuracy: 1
time_ms: 10
memory_kb: 1160
final_rank: 2

code_snippet: #include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main(){

  int n;

  while(1){

    cin >> n;
    if(n < 0) break;

    string s;

    while(1){
      s += (n%4 + 48);

      n /= 4;
      if(n == 0) break;
    }

    for(int i=s.size()-1;i >= 0;i--) cout << s[i];
    cout << endl;
  }
}
accuracy: 1
time_ms: 10
memory_kb: 1192
final_rank: 5

code_snippet: #include <iostream>
#include <stack>
using namespace std;

int main(void)
{
	int n;

	while(cin >> n, n >= 0){
		if(!n){
			cout << n << endl;
			continue;
		}
		stack<int> sta;
		while(n > 0){
			sta.push(n%4);
			n /= 4;
		}
		while(sta.size()){
			cout << sta.top();
			sta.pop();
		}
		cout << endl;
	}
	return 0;
}
accuracy: 1
time_ms: 10
memory_kb: 1200
final_rank: 6