令和7年度 問99 入れ子の条件分岐による賞金額の計算

問題

関数 calculateAmountOfPrize は,業務改善の効果における改善額と短縮期間を,それぞれ improvement と period で受け取り,賞金額を戻り値とする。改善額が20万円で短縮期間が3日の業務改善と,改善額が5万円で短縮期間が14日の業務改善があった。この二つの賞金額の合計は何円か。ここで,改善額と短縮期間の値はそれぞれ0以上とする。 〔プログラム〕

改善額と短縮期間で賞金額を分岐するcalculateAmountOfPrize
コードをテキストで確認
○整数型: calculateAmountOfPrize(整数型: improvement,  // 改善額(円)
                               整数型: period)       // 短縮期間(日)
  整数型: prize  // 賞金額(円)
  if (improvement が 100000 より小さい)
    if (period が 7 より小さい)
      prize ← 500
    else
      prize ← 1000
    endif
  else
    if (period が 7 より小さい)
      prize ← 2000
    else
      prize ← 5000
    endif
  endif
  return prize

1,000

1,500

3,000

5,500

先に解説を見る
正解ウ

3,000

解説

この問題のポイント

入れ子のif文は、外側の条件で進む枝を決め、その枝の内側だけを判定します。複数の入力がある場合は、一件ずつ独立に計算し、最後に結果を足します。金額の単位もそろえます。

処理を追うと

20万円・3日の申請:改善額200,000円は100,000円未満ではないので外側のelseへ進みます。

3日は7日未満なので、賞金は2,000円です。

5万円・14日の申請:改善額50,000円は100,000円未満です。

14日は7日未満ではないので、その内側のelseへ進み、賞金は1,000円です。

合計は2,000+1,000=3,000円です。

正解:ウ

3,000円です。

外側の分岐を決めて、内側を判定
外側の分岐を決めて、内側を判定

同じ分野の問題

関連する用語

編集・確認:kakoloop · 編集方針

公開日:

内容更新:

問題・解説の誤りを報告する

画像を拡大表示