Интересная задачка на C++

Revision ru1, by BekzhanKassenov, 2016-11-23 03:50:05

Привет, сообщество CodeForces!

Недавно вспомнил одну интересную задачу на C++. Если кратко: можно ли написать такие функции action и cond так, чтобы следующие куски кода работали по-разному:

// Snippet #1:
action();
while (cond()) {
    action();
}
// Snippet #2:
do {
    action();
} while (cond());

Более формально: у вас есть следующие три файла:

common.h
main_while.cpp
main_do_while.cpp

Вам разрешено менять лишь common.h. Сделайте это так, чтобы количество выводов Action было разным для main_while.cpp и для main_do_while.cpp.

Одно из возможных решений (настоятельно рекомендуется сначала подумать самостоятельно!):

Dirty hack

Скидывайте свои решения в комментариях, не забывайте прятать под спойлеры! Было бы интересно посмотреть на более умные решения (например на такие, которые будут применимы в любом языке, где есть аналоги while и do-while).

Tags c++, интересные задачи, грязный хак

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru2 Russian BekzhanKassenov 2016-11-23 04:07:36 69 (опубликовано)
en1 English BekzhanKassenov 2016-11-23 04:01:35 1901 Initial revision for English translation
ru1 Russian BekzhanKassenov 2016-11-23 03:50:05 1829 Первая редакция (сохранено в черновиках)