この問題は、与えられた金額nを1円玉、5円玉、10円玉で支払う場合の組み合わせの総数を求めるアルゴリズムに関するものです。
読み込み中...
読み込み中...
問2 次のプログラム中の に入れる正しい答えを,解答群の中から選べ。
関数 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通りである。
[プログラム]
○整数型:change(整数型:n)
整数型:count ← 0
整数型: rest ← n
while (
)
count ← count + (rest ÷ 5 の商) + 1
rest ← rest - 10
endwhile
return count
結論 → 詳細 → 補足 の 3 層構成
この問題は、与えられた金額nを1円玉、5円玉、10円玉で支払う場合の組み合わせの総数を求めるアルゴリズムに関するものです。
プログラムでは、10円玉を何枚使うかに着目し、ループ処理で各10円玉の枚数に対応する組み合わせを計算しています。while文の条件式は、10円玉を減らしていく中で、残りの金額restが0円以上である限りループを続ける必要があります。なぜなら、restが0円になった場合でも、5円玉の枚数によって組み合わせが存在するからです。例えば、restが0円でも、5円玉を0枚使うという組み合わせがあるからです。したがって、restが0円未満になるまで処理を続けるのは不適切です。選択肢アのrest ≥ 0が正解となります。選択肢ウのrest ≥ 10は、10円玉を使い切った後に残った金額で5円玉と1円玉の組み合わせを考える際に、10円玉を使い切った時点でループが終了してしまい、例えば12円の場合に10円玉1枚、残2円で5円玉0枚の組み合わせを数えきれなくなるため誤りです。
解説は Google Gemini に IPA 公式の問題文・公式解答を入力して生成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ず IPA 公式資料でご確認ください。
最終更新:
検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。
この問題の理解を「分野全体の力」に広げるための足がかり
用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。
アルゴリズムとプログラミング の他の問題
基本情報技術者 の同じ分野を年度をまたいで演習する
基本情報 科目B 木構造(二分木)のトレース練習|深さ優先と幅優先で全ノードをたどる
科目Bの頻出データ構造「木構造(二分木)」を、クラス・左右2本の参照・未定義の記法でトレース。深さ優先(行きがけ・通りがけ・帰りがけ)と幅優先(レベル順)の4つの巡回順を、小さな木で1ノードずつ手で追って攻略します。連結リスト・再帰・キューの集大成です。
基本情報 科目B 連結リスト(単方向リスト)のトレース練習|参照を1本ずつ付け替える
科目Bの頻出データ構造「連結リスト(単方向リスト)」を、クラス・メンバ変数(.)・参照・未定義の記法でトレース。先頭への追加・末尾までの走査・途中への挿入を、参照の付け替えを1本ずつ図と表で追って攻略します。配列との違い、付け替えの順序という最大の落とし穴を実演します。
基本情報 科目B スタックとキューのトレース練習|LIFOとFIFOを操作表で1つずつ追う
科目Bの頻出データ構造「スタック(後入れ先出し・LIFO)」と「キュー(先入れ先出し・FIFO)」を、プッシュ/ポップ・エンキュー/デキューの操作を表に書いて1つずつ追うトレースで攻略。同じ入力でも取り出す順番が逆になる理由、頂点・先頭・末尾ポインタの動き、つまずきを具体例で実演します。
基本情報技術者試験を取る意味はあるか|FEのメリットと「意味ない」と言われる理由を整理
基本情報技術者試験(FE)は「意味ない」と言われることがある資格です。取得メリットと「役に立たない」と言われる理由を、就職・実務・上位試験への接続の3観点で整理し、誰に向くのかを正直に解説します。