問題一覧 > 通常問題

No.782 マイナス進数

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 148
作問者 : しらっ亭 / テスター : はむこ
3 ProblemId : 1706 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-10-06 14:55:51

問題文

T 個の非負整数 N1,NTB 進数に変換してください。
ただし、B は、10 以上 2 以下の負の整数です。

B 進数M 桁で aM1aM2a1a0 と表される数は、
aM1×BM1+aM2×BM2++a1×B1+a0×B0 です。
このルールを B が負の整数の場合にも拡張して B 進数に変換してください。

例えば 3 進数 5 桁で 20021 と表される数は、
2×(3)4+0×(3)3+0×(3)2+2×(3)1+1×(3)0
=2×81+0×(27)+0×9+2×(3)+1×1
=162+0+0+(6)+1
=157
です。つまり 1573 進数表現は、20021 です。

出力する B 進数表現の先頭には、冗長なゼロを付与してはいけません。
後述のサンプル1の最初の例では、10011だけが正解であり、0100110010011は不正解です。
なお、整数の B 進数表現は、先頭の冗長なゼロを除き一意になることが保障されています。

入力

T B
N1
N2

NT

T,B,N1NT10 進数表記。
1T10000
10B2
0Ni109
入力は全て整数

出力

T 行に分けて、N1 から NTB 進数で表したときの表現を出力してください。

サンプル

サンプル1
入力
5 -2
15
1
5
6
8
出力
10011
1
101
11010
11000

(2)4+(2)1+(2)0=16+(2)+1=15
(2)0=1
(2)2+(2)0=4+1=5
(2)4+(2)3+(2)1=16+(8)+(2)=6
(2)4+(2)3=16+(8)=8

サンプル2
入力
5 -3
15
1
5
6
8
出力
210
1
122
110
112

2×(3)2+1×(3)1=18+(3)=15
1×(3)0=1
1×(3)2+2×(3)1+2×(3)0=9+(6)+2=5
1×(3)2+1×(3)1=9+(3)=6
1×(3)2+1×(3)1+2×(3)0=9+(3)+2=8

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。