任意のn進数を10進数に変換するプログラムをpythonで作成しています。
使って良い関数は、input, len, while, if, int, str, floatです。
何かおかしいのか、解けません。
int("",n)を使わずない良い方法がありませんか?
python
1x=input("任意のn進数の数字を入力してください。") 2n=input("何進数ですか? 2から10までの整数を入力してください。") 3i=len(x) 4print("x=",x) 5print("n=",n) 6print("i=",i) 7 8a=0 9if a==0: 10 y=int(x[0])*(int(n)**int(i-1)) 11 print("y=",y) 12 13while a<=i: 14 a+=1 15 i-=1 16 y=int(x[a])*(int(n)**int(i-1)) 17 print("y=",y) 18
問題点だけ、、
if a==0: =>直前にa=0 とあるので、必ず、真となります。このif の意味は?
while a<=i: => 配列は、0から始まります。従って x[i]は、エラーとなります。 ... と思ったのですが、 iが一回毎に、 -1されているので、(それも問題) そして、 y=... も更新された a, i を使っているので、正しくないのでは? そして、y= なんで、最後の値のみ有効です。
また、int("",n) を使いたく無いとの事。 10進を越えた n進数の場合、int("")はどうなるでしょうか?
質問文に、
・x, n に具体的にどのような値を与えて動かしてみたのか
・その場合にどのような値が出力されるのが理想か
・今のコードではどんな値が出ている or エラーが出ているのか
・エラーが出ている場合はエラー全文
あたりを記載していただけますと、回答しやすいです。
回答2件
あなたの回答
tips
プレビュー