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

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

Восстановить пароль Регистрация
 
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
14.12.2013, 10:34     Рекурсия #1
Привет.
Только что узнал,что такое рекурсия и понял как она работает,но написать участок кода с рекурсией мозгов не хватает.
Нужно написать внешнюю функцию involution,которая принимает аргумент из main,равный 2.Она возводит его в квадратную степень с помощью рекурсии,пока не получится число 16 и возвращает 16 в main.
В принципе всё просто,но у меня возникли проблемы.
И прошу писать простым кодом,т.к. я новичок и многого могу не понять.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 10:34     Рекурсия
Посмотрите здесь:

Рекурсия C++
Рекурсия C++
C++ рекурсия
Рекурсия C++
Рекурсия C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
14.12.2013, 11:05     Рекурсия #2
C++
1
2
3
4
5
6
7
8
int f(int val) {
    val *= val;
    return val!=16 ? f(val) : val;
/* аналог
if (val!=16) return f(val);
else return val;
*/
}
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
14.12.2013, 11:56  [ТС]     Рекурсия #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int solution(int c)
{  int c=c*2;
   if(c!=16) return solution(c);
   else cout<<"c="<<c<<endl;
   
}
 
int main()
{ 
    int a=2;
    solution(a);
    system("pause");
}
Ошибка:переопределение формального параметра "c"
Как исправить ошибку?
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 12:05     Рекурсия #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int solution(int c)
{  int c=c*2;
   if(c>=16) return solution(c);
   else cout<<"c="<<c<<endl;
   
}
 
int main()
{ 
    int a=2;
    solution(a);
    system("pause");
}
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
14.12.2013, 12:05     Рекурсия #5
Цитата Сообщение от Игорюня Посмотреть сообщение
(int c)
{ *int c=c*2;
повторное объявление то зачем?
C++
1
2
(int c)
{ c=c*2;
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
14.12.2013, 12:25  [ТС]     Рекурсия #6
Цитата Сообщение от monolit Посмотреть сообщение
повторное объявление то зачем?
C++
1
2
(int c)
{ c=c*2;
Спасибо,теперь всё заработало.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 13:49     Рекурсия
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
14.12.2013, 13:49     Рекурсия #7
C++
1
2
3
4
int pow2(int val, int stop){
    if(val==stop) return val;
    else return pow2(val<<1, stop);
}
Yandex
Объявления
14.12.2013, 13:49     Рекурсия
Ответ Создать тему
Опции темы

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