Рассмотрим следующий фрагмент программы, вычисляющейчастное q и остаток r от деленияцелых чисел a, b: дано: целые числа a >= 0, b > 0 цел q, r, e, m; q := 0; r := a; e := 1; m := b цикл пока r >= b | если 2*m <= r | | то e := e*2; m := m*2; | иначе если m > r | | то e := e/2; m := m/2; | иначе | | утверждение: m <= r и r < 2*m | | q := q + e; r := r - m; | конец если конец цикла // q и r -- частное и остаток от деления a на b
Какое условие является инвариантом цикла?
(Отметьте один правильный вариант ответа.)
Варианты ответа
Число e является степенью двойки, а также выполняются равенства a - q·m = r и m = e·b.
Число e является степенью двойки, а также выполняются равенства a - q·b = r и m = e·b. (Верный ответ)