Задача
Вводятся некоторые числа вещественного типа. Вывести их в обратном порядке.
Входные данные
Некие числа вещественного типа.
Выходные данные
Введённые числа в обратном порядке.
Тесты
Входные данные | Выходные данные | Входные данные | Выходные данные | Входные данные | Выходные данные |
---|---|---|---|---|---|
2 4 1 |
1 4 2 |
4 9 -6 |
-6 9 4 |
0.568 0.925 -0.056 |
-0.056 0.925 0.568 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> using namespace std; void reverse() { double x; if (cin >> x) { reverse(); cout << x << "\n"; } } int main() { reverse(); return 0; } |
Идея программы
Основная суть программы заключается в использовании рекурсивной функции. Главная функция main обращается к функции reverse, которая будет считывать поток чисел. Если поток чисел продолжается, то функция будет заново обращаться сама к себе и считывать следующие числа. Когда поток закончится, функция прекратит считывать данные, после чего начнётся вывод.
Принцип работы рекурсивной функции
reverse:
Решение задачи №1001 на acm.timus.ru, основанное на этом принципе
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <cstdio> #include <cmath> void reverse() { double x; if (scanf("%lf", &x) > 0) { reverse(); printf("%.4f\n", sqrt(x)); } } int main() { reverse(); return 0; } |
Отлично! Молодец!
Пожалуйста, модифицируйте код так, чтобы он решал задачу №1001 на сайте acm.timus.ru.
Сделано.