Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
1

Задача на рекурсию

13.08.2012, 15:10. Просмотров 1816. Ответов 4
Метки нет (Все метки)

Помогите решить след. задачу:
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Выведите все нечетные числа из этой последовательности, сохраняя их порядок.
В этой задаче нельзя использовать глобальные переменные и передавать какие-либо параметры в рекурсивную функцию. Функция получает данные, считывая их с клавиатуры. Функция не возвращает значение, а сразу же выводит результат на экран. Основная программа должна состоять только из вызова этой функции.
Ввод
3
1
2
0
Вывод
3
1
Вот мой вариант, но здесь не сохраняется порядок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Func()
{   int x;
    cin>>x;
    if(0==x)
    {   cout<<"Result:"<<endl;
        return;
    }
    else
    {   Func();
        if(x%2!=0)
            cout<<x<<endl;
    }
}
Как же всё-таки решить задачу целиком? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2012, 15:10
Ответы с готовыми решениями:

Задача на рекурсию
Задание: написать функцию умножения двух чисел, используя только операции...

Задача на рекурсию
Задание : Напишите функцию возведения в степень, которая работала бы как для...

Задача на рекурсию
Всем доброго времени суток. Прошу подсказать мне условие задачи на...

Задача на рекурсию
Нашел одну задачу, она по моему на рекурсию, но не могу реализовать это. ...

Задача на рекурсию
Дано число. Вывести все цифры этого числа, не используя дополнительных...

4
Invader_Zim
Twilight Parasite
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
13.08.2012, 18:20 2
PG94, реши задачу через циклы. Потом перепили в рекурсию
0
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
13.08.2012, 18:24 3
порядок операторов перепиши
C++
1
2
3
4
5
6
else
    {  
        if(x%2!=0)
            cout<<x<<endl;
    Func();
    }
1
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
13.08.2012, 21:27  [ТС] 4
Цитата Сообщение от ValeryS Посмотреть сообщение
порядок операторов перепиши
C++
1
2
3
4
5
6
else
    {  
        if(x%2!=0)
            cout<<x<<endl;
    Func();
    }
Спасибо за подсказку, но я искал другой приём, т.е. можно ли с помощью такой ф-ии с исп. рекурсии сначала ввести все данные, а только затем получить весь результат; задержать нужные зн-ия в память до конца ввода?
0
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
13.08.2012, 21:38 5
Цитата Сообщение от PG94 Посмотреть сообщение
но я искал другой приём, т.е. можно ли с помощью такой ф-ии с исп. рекурсии сначала ввести все данные, а только затем получить весь результат;
нет нельзя, потому что тебе нельзя ни глобальными переменными ни аргументами
т.е каждая следующая функция не будет знать что было в предыдущей
посему надо написать а потом вызвать
если наоборот как ты написал то и получится
сначала функция1
вводишь данные(допустим 1)
потом функция2
опять вводишь данные(3)
потом функция3
вводишь 0
выход из функции3
печать 3(это запомнила 2 функция)
выход из функции2
печать 1(это запомнила 1 функция)
выход
вот тебе и обратный отсчет
1
13.08.2012, 21:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2012, 21:38

Задача на рекурсию
Вот код проги которую я написал: #include &lt;iostream&gt; using namespace std; ...

Задача на рекурсию
С помощью рекурсии вычислить произведение ненулевых элементов динамического...

Задача на рекурсию
помогите написать пожалуйста программу на с++ по теме рекурсия. Задано...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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