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

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

Войти
Регистрация
Восстановить пароль
 
OgStyle
11 / 5 / 1
Регистрация: 18.11.2012
Сообщений: 114
#1

Рекурсивная функция - C++

18.11.2012, 15:24. Просмотров 309. Ответов 2
Метки нет (Все метки)

Здравствуйте. Хочу попросить вас о помощи, так как я только начинаю изучать язык программирования с++

Задание таке:

Написать рекурсивную функцию, которая возводит число в степень путем многократного умнажения числа самого на себя т.е. если число например равно 2 а степень 4 возврат функции 16.

Я смог написать все кроме самой рекурсивной части так сказать) не знаю как же это все прилепить. можете помочь? вот уже готовый код программы. для степеня 0 и 1 что должно возвращаться понятно поэтому это я написал.. а вот дальше не знаю((


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
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
 
float funcStep(float n, int s);
 
int main()
    {   
        float n,resault;
        int s;
 
        cout<<"Input your number and stepin -> ";
        
            cin>>n>>s;
        
                resault=funcStep(n,s);
        
        cout<<"\n\nResault obchuslenna -> "<<resault<<endl;
 
    }
 
float funcStep(float n, int s)
    {
        if(s==1)
            return n;
 
        else if(s==0)
            return 1;
        
        else
            
        
 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2012, 15:24     Рекурсивная функция
Посмотрите здесь:

рекурсивная функция - C++
Составить программу с рекурсивною функцией n!+m! де n=4,m=6.

Рекурсивная функция - C++
Составить прогруамму для вычисления , где , для вычисления n!!, использовать рекурсивную типизированную функцию.

Рекурсивная функция - C++
Есть произведение n сомножителей вида (2*2)/(1*3) * (4*4)/(3*5) * ... Если не сложно, где я сделал ошибку в его подсчёте? double...

Рекурсивная функция! - C++
Разработать рекурсивную функцию, возвращающую значение , для вычисления n-го члена последовательности b1 =5, bn+1=bn/(n2+n+1). Не знаю...

Рекурсивная функция y=3x+5 - C++
Здравствуйте! Помогите написать прогу(или если есть готовое решение буду благодарен! Век помнить буду) на c++, которая решает данный...

рекурсивная функция - C++
Описать рекурсивную функцию вычисления значения по указанной формуле. Понимаю, что программа совсем лёгкая, но я никак не могу свыкнуться...

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

Рекурсивная функция - C++
Расскажите пожалуйста про рекурсивную функцию, как она задаётся и всё что с ней связанно. (можно с примерами) от меня +Спасибо

Рекурсивная функция[] - C++
Доброго времени суток. Мне необходимо написать рекурсивную функцию для решения задачи: Помогите пожалуйста в решении данной...

Рекурсивная функция - C++
Нужно перемножить n последних элементов матрицы,используя метод рекурсии. Матрицу я нашел как сделал,вот #include &lt;iostream&gt; ...

рекурсивная функция - C++
Требуется разработать рекурсивную функцию, возвращающую значение для вычисления n-го члена последовательности b1=5, bn+1=bn/n2+n+1 ...

Рекурсивная функция - C++
Задание: Составить программу для счисления сумы К членов строки, где К определяется ||Uk| -|Um||&lt; е и е - наперед задана точность...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
18.11.2012, 15:31     Рекурсивная функция #2
Начнем с того, что вы используете тип float и возвращать в ф-ции такого типа единицу ну никак нельзя. Допустимо возвращать единицу вот таким методом.
return 1.0F;
Через операторы if else вы умаетесь проверять. В таких случаях пользуются циклами.

C++
1
2
3
4
5
6
7
8
9
float funcStep(float n, int s)
{
    float result = 1;
    
    for (int i=0; i < s; ++i)
        result *= n;
 
    return result;
}
OgStyle
11 / 5 / 1
Регистрация: 18.11.2012
Сообщений: 114
18.11.2012, 15:44  [ТС]     Рекурсивная функция #3
Спасибо большое вам за ответ. Этот метод решения задачи я знаю, и согласен что циклом такое решить проще. Но задание состоит в том чтобы вернуть результат рекурсивно. тоесть чтобы функция работала как цикл - определенное количество раз (s) вызвала сама себя, остановилась когда достигла числа (s) тоесть степеня и вернула результат. Эту задачу я нашел в учебнике по теме рекурсивные функции. вот и пытаюсь ее решить)

Добавлено через 5 минут
Задачу решил) додумался)) рекурсивно решить так

return n* funcStep(n,s-1);
Ответ Создать тему
Опции темы

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