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

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

Войти
Регистрация
Восстановить пароль
 
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
#1

Рекурсия: вывести числа от 15 до 10 по возрастанию - C++

06.12.2013, 18:08. Просмотров 410. Ответов 12
Метки нет (Все метки)

Всем доброго времени суток. Есть рекурсивная функция выводящая числа от 15 до 10 по убыванию, как сделать чтоб выводило эти же числа но по возрастанию

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
using namespace std;
long int rec(int q, int n)
{   
if(q<=n)    
{   
    cout << n << endl; 
    return rec(q, n-1);
}
return (q);
}
int main ()
{
int f; 
f=rec(10, 15);
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 18:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия: вывести числа от 15 до 10 по возрастанию (C++):

Вывести все числа от 1 до заданного натурального числа n (рекурсия) - C++
Дано натуральное число n. Выведите все числа от 1 до n (Рекурсия) Ввод - 5 Вывод - 1 2 3 4 5 Как сделать...

Рекурсия: Вывести числа от 1 до n - C++
Здравствуйте программисты! Столкнулся с проблемой. До этого момента решал все задачи итеративным способом, но пришло время знакомиться с...

Рекурсия: вывести все числа от A до B включительно - C++
Нужна помощь Даны два целых числа A и В (каждое в отдельной строке). Вывести все числа от A до B включительно, в порядке возрастания,...

Вывести числа в обратном порядке(рекурсия) - C++
Здравствуйте, есть задача в которой нужно вывести числа в обратном порядке. Сначала вводится количество элементов , а затем сами...

Вывести введенные числа по возрастанию - C++
Здравствуйте помогите написать програму чтобы выводила 5 введеных чисел по возрастанию

Рекурсия: вывести все цифры заданного натурального числа в обратном порядке - C++
дано натуральное число N. выведите все цифры по одной, в обратном порядке, разделяя их пробелами или новыми строками. При решении этой...

12
МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 18:14 #2
C++
1
2
 cout << q << endl; 
    return rec(q+1, n);
0
Aloir
218 / 218 / 13
Регистрация: 17.12.2010
Сообщений: 690
06.12.2013, 18:15 #3
C++
1
2
3
4
5
6
7
8
9
long int rec(int q, int n)
{   
    if(q<=n)    
    {   
        cout << q << endl; 
        return rec(q+1, n);
    }
    return (q);
}
0
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 18:39  [ТС] #4
Спасибо

Добавлено через 11 минут
Получается теперь тут присутствует рекурсия как на подъеме так и на спуске?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
06.12.2013, 18:44 #5

Не по теме:

domovenok, эй, это я домовёнок!



Добавлено через 2 минуты
Цитата Сообщение от domovenok Посмотреть сообщение
Получается теперь тут присутствует рекурсия как на подъеме так и на спуске?
нет, это можно назвать двумя разными функциями
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
long int rec_down(int q, int n)
{   
    if(q<=n)    
    {   
        cout << n << endl; 
        return rec_down(q, n-1);
    }
    return (q);
}
long int rec_up(int q, int n)
{   
    if(q<=n)    
    {   
        cout << q << endl; 
        return rec_up(q+1, n);
    }
    return (q);
}
0
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 18:49  [ТС] #6
А как тогда переписать условия рекурсии чтоб она бала как на подъеме, так и на спуске?
К примеру из этой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
long int rec(int q, int n)
{   
if(q<=n)    
{   
    cout << n << endl; 
    return rec(q, n-1);
}
return (q);
}
 
 
int main ()
{
int f; 
 
f=rec(10, 15);
system("pause");
return 0;
}
0
МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 19:14 #7
в функции меняются всего 2 строчки.
добавить просто флаг, и сравнивать его, и в зависимости от флага делать либо то либо то
0
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 19:24  [ТС] #8
Можно более подробней ...
Нужно чтоб рекурсивная функция была только одна, к примеру эта
C++
1
2
3
4
5
6
7
8
9
10
long int rec(int q, int n)
{   
if(q<=n)    
{   
    
    cout << q << endl; 
    return rec(q+1, n);
}
return (q);
}
0
МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 19:34 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
long int rec(int q, int n,bool flag)
{   
if(q<=n)    
{   
    if (flag)
{
    cout << q << endl; 
    return rec(q+1, n,flag);
}else
{
    cout << n << endl; 
    return rec(q, n-1,flag);
 
}
}
return (q);
}
0
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 19:39  [ТС] #10
А сюда что добавить? Но это как я понял не рекурсия на подъеме и спуске, а просто рекурсия с разными условиями?

C++
1
2
3
4
5
6
7
8
int main ()
{
int f; 
 
f=rec(10, 15, );
system("pause");
return 0;
}
0
МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 19:49 #11
либо true либо false.
функция рекурсивна, и в зависимости от флага она либо поднимается либо спускается(это самая простая реализация)
0
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 20:05  [ТС] #12
А если делать согласно этому примеру, как будет все выглядеть ?
0
Taatshi
06.12.2013, 20:51     Рекурсия: вывести числа от 15 до 10 по возрастанию
  #13
 Комментарий модератора 
domovenok, размещать текстовую информацию в виде картинок запрещено правилами форума. Перепечатайте ручками пожалуйста.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 20:51
Привет! Вот еще темы с ответами:

Рекурсия: вывести на экран цифры числа, принятого в качестве аргумента, в прямом порядке - C++
Кто знает как решить задачу на С++, при помощи рекурсии? Написать функцию, которая выводит на экран цифры числа, принятого в качестве...

Используя оператор switch вывести по возрастанию 3 числа - C++
В три переменные a, b и с записаны три целых попарно неравных между собой числа. Написать программу, которая переставит числа в переменных...

Отсортировать по возрастанию числа и вывести те, которые меньше a - C++
Задание такое : дано некоторое число n , затем вводится n чисел , после этого вводится два числа a и b. Нужно : среди этих n чисел...

Вывести на экран числа побочной диагонали матрицы но возрастанию и убыванию - C++
Всем привет... возникла проблема с выводом чисел побочной диагонали... Условие: Вывести на экран числа побочной диагонали но...


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

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

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