メインコンテンツへスキップ
基本情報技術者令和7年度 CBT科目B2

令和7年度 CBT 基本情報技術者 科目B2

難度標準

問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

選択肢

rest ≥ 0
rest ≥ 5
rest ≥ 10
rest > 0
rest > 5
rest > 10

解説

結論 → 詳細 → 補足 の 3 層構成

展開
解説Layer 1

この問題は、与えられた金額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枚の組み合わせを数えきれなくなるため誤りです。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「アルゴリズムとプログラミング」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

アルゴリズムとプログラミング の他の問題