2001-gre-vs-practice.pdf/Q10

Материал из DISCOPAL
< 2001-gre-vs-practice.pdf
Версия от 07:21, 21 декабря 2024; StasFomin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Вопрос: Q10-e5724f

p := 1; k := 0;
while k < n do
begin
    p := 2 * p;
    k := k + 1
end;

Для фрагмента программы выше, включающего целые числа p, k и n, какой из следующих вариантов является инвариантом цикла, то есть истинным в начале каждого выполнения цикла и при завершении цикла?


Ответы

  • p = k + 1
  • p = (k + 1)2
  • p = (k + 1)2k
  • Правильный ответ: p = 2k
  • p = 2k + 1

Объяснение

В начале каждой итерации цикла p удваивается, а k увеличивается на 1.

Начальные значения: p=1 и k=0. После первой итерации p=2 и k=1, после второй итерации p=4 и k=2, и так далее.

Таким образом, p всегда равно на протяжении 2k всего цикла.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.