Задача: написать программу на языке Си (вариант ANSI C, или C89), которая выводит стандартный ввод в стандартный вывод в обратном порядке символов с использованием только функций getchar() и putchar() из стандартной библиотеки, не более O(n) памяти и O(n) времени, где n — длина входа. (Подсказка: программа может состоять из одной функции.)
------
Решение:
#include <stdio.h>
main() {
int ch = getchar();
if (EOF != ch) {
main();
putchar(ch);
}
return 0;
}
все - по ссылке.
Подписаться на:
Комментарии к сообщению (Atom)
Спутник взлетает. Первая ступень отработала.
И, кажется, неплохо: Посмотрим, что будет когда отработает вторая.
-
Арт-группа «Явь» нарисовала на одной из стен петербургских зданий граффити со Стивеном Хокингом : Неизвестно только где.
-
И немного аналитики в тему, хоть и не праздничной: Речь Президента перед Советом Федерации 1 марта 2018 года, которую одновременно называ...
А будет работать при превышении стека?
ОтветитьУдалитьЕсли памяти не хватает, то ее и так не хватает. Какая разница?
ОтветитьУдалитьДля таких задач предполагается, что место для последовательности длины n есть. Более того, есть 2n места:)
А не более безопасно будет использовать какой-нибудь стек, например, из STL?
ОтветитьУдалитьА какая разница? Принципиальной нет, с точки зрения самого решения.
ОтветитьУдалить