次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り、1円玉、5円玉、10円玉を使ってちょうどn円にする組合せの総数を返す。 例えば、12円にする組合せは、次のように数えられる。10円玉を使わない場合には、1円玉と5円玉だけでちょうど12円にすることになる。その組合せは、使える5円玉の枚数が0以上(12÷5の商)以下なので、(12÷5の商)+1=3通りある。同様に、10円玉を1枚使う場合には、1円玉と5円玉だけでちょうど2円にすることになり、その組合せは(2÷5の商)+1=1通りある。10円玉を2枚以上使う組合せはない。よって、1円玉、5円玉、10円玉を使ってちょうど12円にする組合せは、3+1=4通りである。
残額0も1通り。継続条件は残額0以上とする
〔プログラム〕
○整数型: change(整数型: n)
整数型: count ← 0
整数型: rest ← n
while ( )
count ← count + (rest ÷ 5 の商) + 1
rest ← rest − 10
endwhile
return count
選択肢
- アrest ≧ 0
- イrest ≧ 5
- ウrest ≧ 10
- エrest > 0
- オrest > 5
- カrest > 10
正解と解説
正解:ア rest ≧ 0
ループは10円玉の枚数を0枚、1枚…と増やしながら、残額を1円玉と5円玉で作る組合せ数(残額÷5の商+1)を足していく。残額が0になった場合も、すべて1円玉0枚・5円玉0枚という1通りが存在するので数えなければならない。したがって継続条件は残額が0以上であることになる。
選択肢ごとの解説
- ア残額0のときも1通り存在するので、0以上を継続条件とするのが正しい。
- イ残額が0から4のときの組合せを数え落としてしまう。
- ウ残額が10未満になった時点で打ち切られ、数え落としが生じる。
- エ残額がちょうど0になる場合の1通りを数えられない。
- オ残額が5以下の場合を切り捨ててしまい、組合せ数が不足する。
- カ打切りが早すぎて、正しい総数にならない。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。 関数function1が受け取る引数…2025年度 公開問題 科目B 問1
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。