教えてください
フォームさん
(No.1)
令和6年B問い2について。
Binary=10010
Binaryのi番目の文字を指定するとき、下から数えてではないのでしょうか?
上位の1から数えて、回答が書かれているのですが?
回答がまちがっているのか自分がまちがっているのかわかりません。
おしえてくれないでしょうか???
Binary=10010
Binaryのi番目の文字を指定するとき、下から数えてではないのでしょうか?
上位の1から数えて、回答が書かれているのですが?
回答がまちがっているのか自分がまちがっているのかわかりません。
おしえてくれないでしょうか???
2024.10.26 14:32
QMさん
★FE ゴールドマイスター
(No.2)
https://www.fe-siken.com/kakomon/06_haru/b2.html
今回の場合、binaryは文字列ですから、前(左)から数える方が自然でしょう。
答の処理内容的にも、繰返しのたびに2倍されていくので、最初の数ほど大きい桁になります。
今回の場合、binaryは文字列ですから、前(左)から数える方が自然でしょう。
答の処理内容的にも、繰返しのたびに2倍されていくので、最初の数ほど大きい桁になります。
2024.10.26 14:50
フォームさん
(No.3)
この問題ややこしいな。ありがとうございます
2024.10.26 15:28
boyonboyonさん
★FE シルバーマイスター
(No.4)
この投稿は投稿者により削除されました。(2024.10.26 15:43)
2024.10.26 15:43
boyonboyonさん
★FE シルバーマイスター
(No.5)
下位から数えると、計算式が面倒になるからではないでしょうか。
例の10010の場合では、
末尾の0を取り出す。int(0)をresultに加える。
次の1を取り出す。int(1)を2倍して、resultに加える。
次の0を取り出す。int(0)を2^2倍して、resultに加える。
次の0を取り出す。int(0)を2^3倍して、resultに加える。
次の1を取り出す。int(1)を2^4倍して、resultに加える。
みたいな流れになります。
設問の□の中に入れるとすると
result+int(binaryの(lenth-i+1)文字目の文字)x{2の(i-1)乗}
になってしまいます。
人間が計算するときは、10010を見てすぐに16+2=18となりますが、PCではそうはならないのでアルゴリズムを考えます。そうしたときに設問に示されたような亜アルゴリズムの方がすっきりすると思います。
例の10010の場合では、
末尾の0を取り出す。int(0)をresultに加える。
次の1を取り出す。int(1)を2倍して、resultに加える。
次の0を取り出す。int(0)を2^2倍して、resultに加える。
次の0を取り出す。int(0)を2^3倍して、resultに加える。
次の1を取り出す。int(1)を2^4倍して、resultに加える。
みたいな流れになります。
設問の□の中に入れるとすると
result+int(binaryの(lenth-i+1)文字目の文字)x{2の(i-1)乗}
になってしまいます。
人間が計算するときは、10010を見てすぐに16+2=18となりますが、PCではそうはならないのでアルゴリズムを考えます。そうしたときに設問に示されたような亜アルゴリズムの方がすっきりすると思います。
2024.10.26 15:44
まーぼさん
★FE シルバーマイスター
(No.6)
数字の文字列なので、そう勘違いしてしまったのだと思います。
“Hello”という文字列の1文字目と言われればHであるのと同じように、
“100100”という文字列の1文字目も1というだけです。
“Hello”という文字列の1文字目と言われればHであるのと同じように、
“100100”という文字列の1文字目も1というだけです。
2024.10.26 15:47
フォームさん
(No.7)
>>boyonboyon
>>まーぼ
ありがとうございます
2024.10.26 17:17
広告
返信投稿用フォーム
投稿記事削除用フォーム
広告