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

Рекурсивная функция, число и показатель степени - C++

Восстановить пароль Регистрация
 
Димко_О
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 18
11.06.2012, 13:33     Рекурсивная функция, число и показатель степени #1
Ребят помогите пожалуйста не могу понять как решить данную задачу:
Напишите программу, которая запрашивает число и показатель степени.Напишите рекурсивную функцию, которая возводит число в степень путем многократного умножения числа на само себя, т.е если число равно 2, а показатель степени равен 4, то эта функция должна возвратить число 16. Вот не пойму как это реализовать, помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2012, 13:33     Рекурсивная функция, число и показатель степени
Посмотрите здесь:

C++ Рекурсивная функция[]
C++ Рекурсивная функция
C++ рекурсивная функция
Найти показатель степени числа C++
Рекурсивная функция. Возвести число в степень путём многократного умножения самого на себя C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
11.06.2012, 13:52     Рекурсивная функция, число и показатель степени #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef float real;
 
real _power(real base, short exp) {
    if (!exp)
        return 1.;
    return base * _power(base, exp - 1);
}
 
real power(real base, short exp) {
    if (exp >= 0)
        return _power(base, exp);
    return 1. / _power(base, -exp);
}
Димко_О
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 18
11.06.2012, 14:01  [ТС]     Рекурсивная функция, число и показатель степени #3
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef float real;
 
real _power(real base, short exp) {
    if (!exp)
        return 1.;
    return base * _power(base, exp - 1);
}
 
real power(real base, short exp) {
    if (exp >= 0)
        return _power(base, exp);
    return 1. / _power(base, -exp);
}
а можешь пояснить?
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
11.06.2012, 14:02     Рекурсивная функция, число и показатель степени #4
Код
x^0 = 1
x^n = x * x^(n - 1)
x^(-n) = 1 / x^n
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
11.06.2012, 15:14     Рекурсивная функция, число и показатель степени #5
Можно сделать вот так

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
#include <iostream> 
using namespace std;  
int func( int, int ); // рекурсивная функция
int main() 
{   
    setlocale(0, "rus");
    int number; 
    int degree; 
 
    cout << "Введите число "; 
    cin >> number; 
    cout << "Введите степень "; 
    cin >> degree;  
    cout << "Число "<< number << " в степени " << degree << " равно "<< func(number,degree) << endl; 
 
    system("Pause");
} 
 
int func(int n, int d) 
{ 
    if( d == 0) // если степень равна 0 возвращаем единицу
        return 1; 
    if( d == 1)  // если степень равна 1 возвращаем число
        return n;
    else 
        return n * func(n, d-1); // в остальных случаях производим умножение и вызаем функцию
}                                // уменьшая степень на 1
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
11.06.2012, 15:53     Рекурсивная функция, число и показатель степени #6
Цитата Сообщение от David Sylva Посмотреть сообщение
if( d == 1) // если степень равна 1, возвращаем число
return n;
В этом нет необходимости. На следующем шаге получим d == 0 и умножим n на единицу.
Yandex
Объявления
11.06.2012, 15:53     Рекурсивная функция, число и показатель степени
Ответ Создать тему
Опции темы

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