Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 80, средняя оценка - 4.60
ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
#1

Вывести числа в обратном порядке(рекурсия) - C++

22.10.2012, 11:26. Просмотров 12387. Ответов 7
Метки нет (Все метки)

Здравствуйте, есть задача в которой нужно вывести числа в обратном порядке.
Сначала вводится количество элементов , а затем сами элементы.
Нельзя использовать массивы и циклы вообще.
Не обязательно код , достаточно будет дать направление в решении задачи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 11:26     Вывести числа в обратном порядке(рекурсия)
Посмотрите здесь:
Рекурсия: вывести данную последовательность в обратном порядке C++
C++ Вывести цифры числа в прямом и обратном порядке
C++ Для каждого числа последовательности вывести новое число, которое получится после записи цифр числа в обратном порядке
Вывести все цифры числа по одной, в обратном порядке C++
Рекурсивно вывести цифры целого числа в обратном порядке C++
Вывести числа в обратном порядке и определить сумму чисел C++
Получить все натуральные делители числа и вывести их в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2012, 11:39     Вывести числа в обратном порядке(рекурсия) #2
вывод ненулевого числа a в обратном порядке
C++
1
2
3
4
5
6
7
8
void Print(int a)
{
   if (a)
   {
      cout << (a%10);
      Print(a/10);
   }
}
вывод любого числа в обратном порядке
C++
1
2
3
4
5
6
7
8
9
10
void Print(unsigned int a)
{
  if (a < 10)
      cout << a;
  else 
  {
      cout << (a%10);
      Print(a/10);
   }
}
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
22.10.2012, 11:43     Вывести числа в обратном порядке(рекурсия) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
void printInverse(int n) {
    if (n<1) {
        cout << endl;
        return;
    }
    else {
        int k;
        cin >> k;
        printInverse(n-1);
        cout << k << endl;
    }
}
 
int main() {
    int num;
    cin >> num;
    cout << endl;
    printInverse(num);
}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2012, 11:48     Вывести числа в обратном порядке(рекурсия) #4
Цитата Сообщение от ZubSam Посмотреть сообщение
нужно вывести числа в обратном порядке
не совсем однозначная задача. если имеются числа
12, 105, 123,
то надо вывести
123, 105, 12
или
21, 501, 321
или
321, 501, 21?
MrGrig
22.10.2012, 11:49
  #5

Не по теме:

Thinker, Числа имеется ввиду множественное значение слова=) хотя мб и нет, в принципе суть задания некоректно составлена

ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
22.10.2012, 11:55  [ТС]     Вывести числа в обратном порядке(рекурсия) #6
Цитата Сообщение от Thinker Посмотреть сообщение
void Print(unsigned int a)
{
if (a < 10)
cout << (a);
else
{
cout << (a%10);
Print(a/10);
}
}
спасибо) очень интересное решение , но не совсем понятно как это все дело работает )

Добавлено через 2 минуты
Цитата Сообщение от Thinker Посмотреть сообщение
не совсем однозначная задача. если имеются числа
Сначала вводится общее кол-во цифр, а затем цифры.
Например:
5
13, 52, 1, 2, 74
Вывести мы должны уже
74, 2, 1, 52, 13
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2012, 11:56     Вывести числа в обратном порядке(рекурсия) #7
Цитата Сообщение от ZubSam Посмотреть сообщение
не совсем понятно как это все дело работает
очень просто. например дано число 123. отщепляем от него последнюю цифру - 3 и выводи на экран, а далее вызываем рекурсивно функцию с числом 12 и т.д. Но суть задачи все же не однозначна (пример в посте 4)

Добавлено через 1 минуту
Цитата Сообщение от ZubSam Посмотреть сообщение
Сначала вводится общее кол-во цифр, а затем цифры.
Например:
5
13, 52, 1, 2, 74
Вывести мы должны уже
74, 2, 1, 52, 13
а, ну тогда вариант от doctor_lecter вам поможет)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2012, 11:59     Вывести числа в обратном порядке(рекурсия)
Еще ссылки по теме:
Рекурсивные функции: вывести цифры натурального числа n в обратном порядке C++
Вывести все цифры введенного натурального числа в обратном порядке C++
C++ Вывести все чётные числа между а и b в прямом и обратном порядке
Дано целое число n. Вывести двоичную запись числа в обратном порядке C++
C++ Рекурсия: вывести на экран цифры числа, принятого в качестве аргумента, в прямом порядке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
22.10.2012, 11:59  [ТС]     Вывести числа в обратном порядке(рекурсия) #8
вот то что "доктор прописал"
Цитата Сообщение от doctor_lecter Посмотреть сообщение
#include <iostream>
using namespace std;
void printInverse(int n) {
if (n<1) {
cout << endl;
return;
}
else {
int k;
cin >> k;
printInverse(n-1);
cout << k << endl;
}
}
int main() {
int num;
cin >> num;
cout << endl;
printInverse(num);
}
Добавлено через 1 минуту
Цитата Сообщение от Thinker Посмотреть сообщение
очень просто. например дано число 123. отщепляем от него последнюю цифру - 3 и выводи на экран, а далее вызываем рекурсивно функцию с числом 12 и т.д. Но суть задачи все же не однозначна (пример в посте 4)
спасибо за пояснение , теперь стало понятно )
Yandex
Объявления
22.10.2012, 11:59     Вывести числа в обратном порядке(рекурсия)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru