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

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

Восстановить пароль Регистрация
 
OgStyle
11 / 5 / 1
Регистрация: 18.11.2012
Сообщений: 114
18.11.2012, 15:24     Рекурсивная функция #1
Здравствуйте. Хочу попросить вас о помощи, так как я только начинаю изучать язык программирования с++

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

Написать рекурсивную функцию, которая возводит число в степень путем многократного умнажения числа самого на себя т.е. если число например равно 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++ Рекурсивная функция!
C++ Рекурсивная функция
Рекурсивная функция C++
Рекурсивная функция C++
Рекурсивная функция C++
Рекурсивная функция C++ C++
C++ Рекурсивная функция
Рекурсивная функция C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
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);
Yandex
Объявления
18.11.2012, 15:44     Рекурсивная функция
Ответ Создать тему
Опции темы

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