Рубрики

ВОРОТА | GATE-CS-2015 (набор 1) | Вопрос 65

Рассмотрим следующий псевдокод, где x и y — положительные целые числа.

begin
   q := 0
   r := x
while r >= y do
   begin
      r := r – y
      q := q + 1
   end
end 

Почтовое условие, которое должно быть выполнено после завершения программы:
(A) {r = qx + y ∧ r <y}
(B) {x = qy + r ∧ r <y}
(C) {y = qx + r ∧ 0 <r <y}
(D) {q + 1 0}

Ответ: (Б)
Объяснение: Данный псевдокод выполняет следующие действия для заданных x и y, которые являются целыми положительными числами.

1) It initializes r as x.
2) It repeatedly subtracts y from r until r becomes
   smaller than y.  For every subtraction, it 
   increments count q.
3) Finally r contains remainder, i.e., x%y and q contains
   ⌊x/y⌋

Смотрите ниже псевдокод с комментариями.

begin
   q := 0  // q is going to contain floor(x/y)
   r := x  // r is going to contain x % y

// Repeatedly subtract y from x.
while r >= y do
   begin
      r := r – y
      q := q + 1
   end
end

Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2015 (набор 1) | Вопрос 65

0.00 (0%) 0 votes