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

Функция вычисления степени числа (рекурсия) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.76
selevit
 Аватар для selevit
79 / 75 / 3
Регистрация: 08.10.2008
Сообщений: 296
14.09.2010, 20:05     Функция вычисления степени числа (рекурсия) #1
Всем доброго времени суток, сегодня начал осваивать рекурсивные функции, суть понял, написал функцию вычисления степени числа:

C++
1
2
3
4
5
6
7
8
9
double stepen(double X, int N)
{
    if (N == 0)
        return 1;
    else if (N > 0)
        return 1 / stepen(X, -N);
    else 
        return X * stepen(X, N - 1);
}
отладчик выдает ошибку - что то вроде необработанного исключения, подскажите пожалуйста, в чем ошибка, строго не судите, я только учусь. =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2010, 20:05     Функция вычисления степени числа (рекурсия)
Посмотрите здесь:

C++ Разработать алгоритм вычисления корня n-ой степени из комплексного числа
C++ функция вычисляющяя степень числа по основанию и показателю степени
C++ Реализовать рекурсивную функцию вычисления степени из числа
Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. Найти ошибку C++
Рекурсия для вычисления квадрата числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2010, 20:13     Функция вычисления степени числа (рекурсия) #2
Гм. С отрицательными не так.

C++
1
2
3
4
5
6
7
8
9
double stepen(double X, int N)
{
        if (N == 0)
                return 1;
        else if (N > 0)
                return X*stepen(X, N-1);
        else 
                return  1/stepen(X, N+1);
}
selevit
 Аватар для selevit
79 / 75 / 3
Регистрация: 08.10.2008
Сообщений: 296
14.09.2010, 20:22  [ТС]     Функция вычисления степени числа (рекурсия) #3
да, епт, знак перепутал =) со всемы бывает =)

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
double stepen(double X, int N)
{
        if (N == 0)
                return 1;
        else if (N < 0)
                return 1 / stepen(X, -N);
        else 
                return X * stepen(X, N - 1);
так все нормально =) Спасибо
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2010, 20:27     Функция вычисления степени числа (рекурсия) #4
selevit, Етить. А я там что только не вытворял чтобы заработало. Оказывается просто не так делал немного
selevit
 Аватар для selevit
79 / 75 / 3
Регистрация: 08.10.2008
Сообщений: 296
15.09.2010, 19:22  [ТС]     Функция вычисления степени числа (рекурсия) #5
Lavroff, я заметил, что это закономерность, бывает много ошибок, например при компиляции, одну строку исправишь и все заработает, а вот такие ошибки, которые возникают при выполнении программы - найти не всегда так просто. =)
Yandex
Объявления
15.09.2010, 19:22     Функция вычисления степени числа (рекурсия)
Ответ Создать тему
Опции темы

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