この概念が出た関連問題
正解は カ
擬似言語プログラムのトレース問題です。function1とfunction2が同じ引数(n, m)を受け取ったとき同じ値を返すという条件から、空欄a・bに適切なループ制御を選ぶ問題です。function2が「n からm まで1ずつ増やす」ループ(m-n+1回の繰り返し)でカウンタを加算する構造であれば、function1は「1から(m-n)まで1ずつ増やす」または等価な構造で同じ回数の繰り返しを実現する必要があります。m-n は両関数が同じ回数の繰り返しを行うための本質的な差分です。ここで重要なのは、ループの範囲が m-n の関係を維持していること:function2 が「j を 1 から m-n まで 1 ずつ増やす」(m-n回の繰り返し)のに対して、function1 が「i を n から m まで 1 ずつ増やす」(m-n+1回ではなく等価な回数)となるよう対応を取ることです。問題の制約「引数m はnより10以上大きい」から、m-n >= 10が保証されており、両関数が安全に動作することがわかります。擬似言語問題では、ループの開始値・終了値・増分から総実行回数を数えることが解法の鍵です。実行回数 = (終了値 - 開始値) ÷ 増分 + 1 が基本公式です。
擬似言語のループ回数公式:「i を A から B まで 1 ずつ増やす」の繰り返し回数 = B - A + 1。2つの関数が同じ値を返す条件=同じ回数の繰り返し。開始値・終了値をそれぞれ確認して等式を立てる。