10進数→N進数へ変換
#お題
10 進数で表された整数 N, M が与えられます。
N を M 進数に変換して出力してください。
#入力
N M
・ 1 行で整数 N, M が与えられます。
#出力
N M
・ 1 行で整数 N, M が与えられます。
#コード
a,b = map(int,input().split())
ans = ""
tmp = a
while tmp >= b:
ans = str(tmp % b) + ans
tmp //= b
ans = str(tmp % b) + ans
print(ans)
#参考
<別解>
N, M = map(int, input().split())
base = ""
while N > 0:
base += str(N % M)
N //= M
print(base[::-1])
- N が自然数であれば、M で割った余りを取ると、M 進数に変換した際の M^0 の桁を求めることができます。
- M^0 の位を求めたら N を M で割り、もう一度同じ操作を繰り返すと M^1 の位を求めることができます。
- これを繰り返していくことで N を M 進数に変換することができました。