roimin1
@roimin1

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

10進数からN進数に変換後末尾に0をつけたい

解決したいこと

正整数 N(Nは10 進数)をB進数表記に変換し、末尾に '0'をK個追加する。
操作を行った結果の Nを10 進数で出力する。
入力は全て整数である。

を解きたい。

入力する値例及び出力例

入力される値

N B K

1 行目に整数 N,B,K が空白区切りで与えられます。

期待される出力値

N に対して操作を行った結果の値を 10 進数で出力してください。

制約:入力は全て整数である

1≤N≤1000

2≤B≤10

1≤K≤5

入力値

5 2 1

期待される出力値

10

入力値

3 3 3

期待される出力値

81

自分で試したこと

# coding: utf-8
# Your code here!
a = input()
l=a.split()

#print(l) ['5', '2', '1']
x=int(l[0])#5
y=int(l[1])#2 何進数に変換するのかの指標かつ、x/yをループして余りを出力するためのもの
z=int(l[2])#1 これはxの末尾に0を何個つけるかの何個にあたる
while tmp>y:
    remainder=str(x%y)
    tmp+=remainder

0

1Answer

10進数からN進数に変換

「python 10進数からN進数に変換」で調べるといろいろ情報は出てくると思います。

実装例としては、以下のようなかたちになると思います。

N = 5
B = 2

s = ''
while N:
    s = str(N%B) + s
    N //= B
    
print(s)
#101

指定の数だけ末尾に0をつけたい

s = '1'

K = 3
s = s + '0'*K
print(s)
#1000

また、この問題を数学的に解くのであれば、以下のようなかたちで解けると思います。

N,B,K = map(int,input().split())
print(N * (B**K))
1Like

Comments

  1. @roimin1

    Questioner

    早い解答ありがとうございます!
    whileを使ったものはこちらのやりかたよりも効率的ですっきりしていて分かりやすいため助かります。

    数学的に解く方法だとものすごく短いですね!ありがとうございます!
    map関数を使うとは、思いつきませんでした!参考になります。

Your answer might help someone💌