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

рекурсия - C++

Восстановить пароль Регистрация
 
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 18:08     рекурсия #1
Всем доброго времени суток. Есть рекурсивная функция выводящая числа от 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 18:08     рекурсия
Посмотрите здесь:

Рекурсия C++
C++ рекурсия
Рекурсия C++
Рекурсия C++
Рекурсия C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 18:14     рекурсия #2
C++
1
2
 cout << q << endl; 
    return rec(q+1, n);
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
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);
}
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 18:39  [ТС]     рекурсия #4
Спасибо

Добавлено через 11 минут
Получается теперь тут присутствует рекурсия как на подъеме так и на спуске?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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);
}
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;
}
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 19:14     рекурсия #7
в функции меняются всего 2 строчки.
добавить просто флаг, и сравнивать его, и в зависимости от флага делать либо то либо то
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);
}
МаксимТ
 Аватар для МаксимТ
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);
}
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;
}
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
06.12.2013, 19:49     рекурсия #11
либо true либо false.
функция рекурсивна, и в зависимости от флага она либо поднимается либо спускается(это самая простая реализация)
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
06.12.2013, 20:05  [ТС]     рекурсия #12
А если делать согласно этому примеру, как будет все выглядеть ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 20:51     рекурсия
Еще ссылки по теме:

Рекурсия C++
C++ Рекурсия
C++ Рекурсия

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

Или воспользуйтесь поиском по форуму:
Taatshi
06.12.2013, 20:51     рекурсия
  #13
 Комментарий модератора 
domovenok, размещать текстовую информацию в виде картинок запрещено правилами форума. Перепечатайте ручками пожалуйста.
Yandex
Объявления
06.12.2013, 20:51     рекурсия
Ответ Создать тему
Опции темы

Текущее время: 15:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru