第27問 数字を逆順にする
整数 num(=1234)の数字を逆の順(4321)に並べかえて表示するようにしよう。一の位を取り出し、これまでの結果(gyaku)を10倍して桁を上げてから一の位をたし、num を10でわって桁をひとつ減らすことを、num が0になるまで繰り返します(3か所の穴をうめよう)
難易度:★★★★☆(4/やや難しい)。共通テスト「情報I」で使われるDNCL(共通テスト用プログラム表記)の穴埋め問題です。JavaScriptを有効にすると、このページでプログラムを組み立てて実行しながら解けます。
プログラム
num = 1234
gyaku = 0
num > 0 の間繰り返す:
ichi = num [A] 10
gyaku = gyaku [B] 10 + ichi
tsugi = num [C] 10
num = 切り捨て(tsugi)
表示する("逆順にすると" + gyaku)
空欄 [A]・[B]・[C] に当てはまるものを、次の選択肢から選びます。
選択肢
ヒント
num % 10 で一の位を取り出し、これまでの結果を gyaku * 10 で桁上げしてから一の位をたす、そして num / 10 で桁をひとつ減らす、と考えよう。1234→4→43→432→4321 と組み立てていきます
解答
- 空欄 [A] …
%
- 空欄 [B] …
*
- 空欄 [C] …
/
よくある間違い
- [A]
/ [B]* [C]/ … 一の位を取り出すには10でわった「あまり」がほしいです。/ だと商(1234÷10=123)になり、一の位の数字になりません。% を使いましょう
- [A]
% [B]+ [C]/ … gyaku + 10 + ichi では、これまでの結果を10倍して桁を上げることができません。位を1つ上げるには「かけ算」で gyaku * 10 とします
- [A]
% [B]- [C]/ … 引き算では gyaku がどんどんマイナスになってしまいます。桁を1つ上げるのは gyaku * 10 です
- [A]
% [B]* [C]% … 桁をひとつ減らすには10で「わって」商にします。% だと num があまりのままになり、0にならず繰り返しが終わりません。/ を使いましょう
ほかの問題