Рубрики

Алгоритмы | Анализ алгоритмов | Вопрос 19

Рассмотрим следующий фрагмент программы для обращения цифр в данном целом числе для получения нового целого числа. Пусть n = D1D2… Dm

int n, rev; 

rev = 0; 

while (n > 0) 

   rev = rev*10 + n%10; 

   n = n/10; 

}

Инвариантное условие цикла в конце i-й итерации: (GATE CS 2004)
(A) n = D1D2… .Dm-i и rev = DmDm-1… Dm-i + 1
(B) n = Dm-i + 1… Dm-1Dm и rev = Dm-1… .D2D1
(С) n! = Rev
(D) n = D1D2… .Dm и rev = DmDm-1… D2D1

Ответ: (А)
Объяснение: Мы можем получить это, взяв пример, подобный n = 54321. После 2 итераций rev будет 12, а n будет 543.
Тест на этот вопрос

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

Алгоритмы | Анализ алгоритмов | Вопрос 19

0.00 (0%) 0 votes