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

Написать рекурсивную функцию для расчета степени n вещественного числа a - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
danil663
1 / 1 / 0
Регистрация: 11.06.2013
Сообщений: 132
01.11.2013, 14:55     Написать рекурсивную функцию для расчета степени n вещественного числа a #1
Написать рекурсивную функцию для расчета степени n вещественного числа a (n – натуральное число).
Только словами по проще,если можно.Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 14:55     Написать рекурсивную функцию для расчета степени n вещественного числа a
Посмотрите здесь:

C++ написать программку для расчета степени
C++ Написать рекурсивную функцию вычисления суммы цифр натурального числа
Написать рекурсивную функцию вычисления суммы цифр натурального числа C++
C++ Описать рекурсивную функцию вещественного типа, находящую приближенное значение корня K-й степени из числа X по формуле:
C++ Написать рекурсивную функцию, выводящую все числа от 1 до n
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
01.11.2013, 15:53     Написать рекурсивную функцию для расчета степени n вещественного числа a #2
C++
1
2
3
4
5
6
7
double Step (double a, int n)
{
   if (n == 1)
     return a;
  else
    return a*Step (a, n-1);
}
Matan!
13 / 13 / 1
Регистрация: 31.05.2013
Сообщений: 206
Записей в блоге: 2
Завершенные тесты: 1
01.11.2013, 16:39     Написать рекурсивную функцию для расчета степени n вещественного числа a #3
Цитата Сообщение от FreeMan108 Посмотреть сообщение
return a*Step (a, n-1)
И программа чокнется,столкнувшись спрева с нулевой,а потом с отрицательной степенью...
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
01.11.2013, 16:50     Написать рекурсивную функцию для расчета степени n вещественного числа a #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double _pow(double a,int n) {
    if (n == 0) {
        return 1;
    }
    if (n == 1) {
        return a;
    }
    if (n>0) {
        return a*_pow(a,n-1);
    }
    if (n<0) {
        return 1/a * _pow (a,n+1);
    }
}
Extrim88
 Аватар для Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
01.11.2013, 16:56     Написать рекурсивную функцию для расчета степени n вещественного числа a #5
Ветка n < 0 не нужна, в условии задания говорится, что n - натуральное число.

Добавлено через 2 минуты
Поэтому тип переменной n лучше сделать беззнаковым целым, например unsigned int.
Matan!
13 / 13 / 1
Регистрация: 31.05.2013
Сообщений: 206
Записей в блоге: 2
Завершенные тесты: 1
01.11.2013, 17:18     Написать рекурсивную функцию для расчета степени n вещественного числа a #6
Цитата Сообщение от Extrim88 Посмотреть сообщение
Ветка n < 0 не нужна, в условии задания говорится, что n - натуральное число.
А откуда программе знать,какое n?Я захочу и введу,а программа сломается
Цитата Сообщение от Extrim88 Посмотреть сообщение
оэтому тип переменной n лучше сделать беззнаковым целым, например unsigned int.
Дай Бог,чтобы это спасло.Извиняюсь,не подумал об этой возможности
Цитата Сообщение от scenotaph Посмотреть сообщение
double _pow(double a,int n) { if (n == 0) { return 1; }
Прога должна 1 выводить,а так она проигнорирует это дело.
Цитата Сообщение от scenotaph Посмотреть сообщение
if (n>0) { return a*_pow(a,n-1); }
n>1
Цитата Сообщение от scenotaph Посмотреть сообщение
if (n<0) { return 1/a * _pow (a,n+1); } }
Просто return 1/a * _pow (a,n), иначе введу n=-1 и Hello,error
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
01.11.2013, 17:22     Написать рекурсивную функцию для расчета степени n вещественного числа a #7
n - целое. n>1 и n>0 будут эквиваленты, т.к. в начале оно сравнивается с единицей и нулём
Вводите -1, ничего не будет

А ваш "Просто return 1/a * _pow (a,n) " приведет к бесконечной рекурсии
Matan!
13 / 13 / 1
Регистрация: 31.05.2013
Сообщений: 206
Записей в блоге: 2
Завершенные тесты: 1
01.11.2013, 18:06     Написать рекурсивную функцию для расчета степени n вещественного числа a #8
Цитата Сообщение от scenotaph Посмотреть сообщение
Вводите -1, ничего не будет
Совсем ничего?
Цитата Сообщение от scenotaph Посмотреть сообщение
if (n == 0) { return 1; }
Зачем тогда это писал,если
Цитата Сообщение от scenotaph Посмотреть сообщение
n>1 и n>0 будут эквиваленты
?
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
01.11.2013, 18:11     Написать рекурсивную функцию для расчета степени n вещественного числа a #9
При вводе -1 всё замечательно считает.
Потому что если степень нулевая, то возвращаем один. Что за вопросы глупые?
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
01.11.2013, 20:29     Написать рекурсивную функцию для расчета степени n вещественного числа a #10
Цитата Сообщение от Matan! Посмотреть сообщение
И программа чокнется,столкнувшись спрева с нулевой,а потом с отрицательной степенью...
Это невозможно. Сказанно, что n - натуральное.

C++
1
2
if (n == 1)
  return a;
Не может быть такого вызова функции, где n <= 0. Этот кусочек кода это предотвращает.

Добавлено через 5 минут
Цитата Сообщение от Matan! Посмотреть сообщение
А откуда программе знать,какое n?Я захочу и введу,а программа сломается
Вот обработка ошибки. Специально для тех, кому не терпится что-то взломать.

C++
1
2
if (n < 1)
  return ID_ERROR;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 07:41     Написать рекурсивную функцию для расчета степени n вещественного числа a
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Matan!
13 / 13 / 1
Регистрация: 31.05.2013
Сообщений: 206
Записей в блоге: 2
Завершенные тесты: 1
03.11.2013, 07:41     Написать рекурсивную функцию для расчета степени n вещественного числа a #11
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Вот обработка ошибки. Специально для тех, кому не терпится что-то взломать.
Код C++

if (n < 1)
return ID_ERROR;
Другое дело

Добавлено через 1 минуту
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Это невозможно. Сказанно, что n - натуральное.
Код C++

if (n == 1)
return a;
Не может быть такого вызова функции, где n <= 0. Этот кусочек кода это предотвращает.
Ничего он не предотвращает... Всего навсего указывает программе,как себя вести,если показатель равен 1.

Добавлено через 2 минуты
Что,кстати говоря,совершенно бессмысленно,так как с матем.точки зрения в 1 нет никаких особенностей,поэтому программа сама прекрасно справится без каких-либо инструкций.
Yandex
Объявления
03.11.2013, 07:41     Написать рекурсивную функцию для расчета степени n вещественного числа a
Ответ Создать тему
Опции темы

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