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

Возвездение числа в степень (рекурсия) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
31.07.2010, 03:40     Возвездение числа в степень (рекурсия) #1
Возвести число base в степень exponent с помощью рекурсии.
Возможно ли обойтись без третьей переменной или же это оптимальный вариант?

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
//Рекурсивная функция возведения в степень
 
#include <iostream>
 
int power(int, int, int);
 
int main()
{
    int base, exponent, one=1;
    base=exponent=0;
    std::cout<<"Enter base: ";
    std::cin>>base;
    std::cout<<"Enter exponent: ";
    std::cin>>exponent;
    std::cout<<power(base, exponent, one);
    return 0;
}
 
int power(int b, int e, int s)
{
    if(e==0)
        return s;
    else
        return power(b,e-1, s*=b);
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Inadequate
Retired
7703 / 2563 / 183
Регистрация: 17.10.2009
Сообщений: 5,106
31.07.2010, 04:33     Возвездение числа в степень (рекурсия) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Можно вот так
C++
1
2
3
4
5
6
7
int power(int b, int e)
{
    if (e == 0)
        return 1;
    else
        return b * power(b, e-1);
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
31.07.2010, 04:53  [ТС]     Возвездение числа в степень (рекурсия) #3
Inadequate, Ох. Точно. Спасибо огромное!
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.07.2010, 09:15     Возвездение числа в степень (рекурсия) #4
Сокращенная запись:
C++
1
2
3
4
int power(int base, int e)
{
    return (e ? base * power(base, e - 1) : 1);
}
Yandex
Объявления
31.07.2010, 09:15     Возвездение числа в степень (рекурсия)
Ответ Создать тему
Опции темы

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