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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

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

13.08.2012, 15:10. Просмотров 1499. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на рекурсию (C++):

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

Задача на рекурсию - C++
Вот код проги которую я написал: #include &lt;iostream&gt; using namespace std; int factr(double i){ int answer; if(i==1) ...

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

задача на рекурсию в си++ - C++
Даны числа a и b. Определите, сколько существует последовательностей из a нулей и b единиц, в которых никакие два нуля не стоят рядом.

Задача на рекурсию - C++
С помощью рекурсии вычислить произведение ненулевых элементов динамического массива. Кто-то знает? Вот такой вот фрагмент есть, но он...

Задача на рекурсию - C++
помогите написать пожалуйста программу на с++ по теме рекурсия. Задано действительное A, найти среди чисел 1; 1+1/2; 1+1/2+1/3;.... ...

4
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
13.08.2012, 18:20 #2
PG94, реши задачу через циклы. Потом перепили в рекурсию
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,934
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
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,934
13.08.2012, 21:38 #5
Цитата Сообщение от PG94 Посмотреть сообщение
но я искал другой приём, т.е. можно ли с помощью такой ф-ии с исп. рекурсии сначала ввести все данные, а только затем получить весь результат;
нет нельзя, потому что тебе нельзя ни глобальными переменными ни аргументами
т.е каждая следующая функция не будет знать что было в предыдущей
посему надо написать а потом вызвать
если наоборот как ты написал то и получится
сначала функция1
вводишь данные(допустим 1)
потом функция2
опять вводишь данные(3)
потом функция3
вводишь 0
выход из функции3
печать 3(это запомнила 2 функция)
выход из функции2
печать 1(это запомнила 1 функция)
выход
вот тебе и обратный отсчет
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2012, 21:38
Привет! Вот еще темы с ответами:

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

Задача на рекурсию - C++
Задание: написать функцию умножения двух чисел, используя только операции сложения и рекурсии. Не понимаю как это сделать( Прошу...

Задача на рекурсию - C++
Нашел одну задачу, она по моему на рекурсию, но не могу реализовать это. Сколько существует чисел от 1 до n, таких, что цифры числа...

Задача на рекурсию - C++
Дано натуральное число n. Выяснить, имеется ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые числа, разность между которыми равна...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
13.08.2012, 21:38
Ответ Создать тему
Опции темы

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