Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/65: Рейтинг темы: голосов - 65, средняя оценка - 4.62
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 297
1

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

01.11.2013, 14:55. Показов 12277. Ответов 10
Метки нет (Все метки)

Написать рекурсивную функцию для расчета степени n вещественного числа a (n – натуральное число).
Только словами по проще,если можно.Заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2013, 14:55
Ответы с готовыми решениями:

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

Написать рекурсивную функцию для расчета степени n вещественного числа a (n — натуральное число)
Помогите пожалуйста, написал программу, но без рекурсива. Не понимаю как он вообще должен выглядеть...

Написать рекурсивную функцию для расчета степени а в степени х, х - любое число
Здравствуйте. Написать рекурсивную функцию для расчета степени а в степени х, х - любое число ...

Написать рекурсивную функцию для вычисления натуральной степени заданного целого числа
Рекурсия. Помогите исправить программу: Напишите рекурсивную функцию для вычисления натуральной...

10
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
01.11.2013, 15:53 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);
}
0
Модератор
1426 / 1003 / 226
Регистрация: 31.05.2013
Сообщений: 6,650
Записей в блоге: 6
01.11.2013, 16:39 3
Цитата Сообщение от FreeMan108 Посмотреть сообщение
return a*Step (a, n-1)
И программа чокнется,столкнувшись спрева с нулевой,а потом с отрицательной степенью...
0
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
01.11.2013, 16:50 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);
    }
}
0
51 / 51 / 21
Регистрация: 08.02.2013
Сообщений: 189
01.11.2013, 16:56 5
Ветка n < 0 не нужна, в условии задания говорится, что n - натуральное число.

Добавлено через 2 минуты
Поэтому тип переменной n лучше сделать беззнаковым целым, например unsigned int.
0
Модератор
1426 / 1003 / 226
Регистрация: 31.05.2013
Сообщений: 6,650
Записей в блоге: 6
01.11.2013, 17:18 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
0
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
01.11.2013, 17:22 7
n - целое. n>1 и n>0 будут эквиваленты, т.к. в начале оно сравнивается с единицей и нулём
Вводите -1, ничего не будет

А ваш "Просто return 1/a * _pow (a,n) " приведет к бесконечной рекурсии
0
Модератор
1426 / 1003 / 226
Регистрация: 31.05.2013
Сообщений: 6,650
Записей в блоге: 6
01.11.2013, 18:06 8
Цитата Сообщение от scenotaph Посмотреть сообщение
Вводите -1, ничего не будет
Совсем ничего?
Цитата Сообщение от scenotaph Посмотреть сообщение
if (n == 0) { return 1; }
Зачем тогда это писал,если
Цитата Сообщение от scenotaph Посмотреть сообщение
n>1 и n>0 будут эквиваленты
?
0
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
01.11.2013, 18:11 9
При вводе -1 всё замечательно считает.
Потому что если степень нулевая, то возвращаем один. Что за вопросы глупые?
0
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
01.11.2013, 20:29 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;
0
Модератор
1426 / 1003 / 226
Регистрация: 31.05.2013
Сообщений: 6,650
Записей в блоге: 6
03.11.2013, 07:41 11
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Вот обработка ошибки. Специально для тех, кому не терпится что-то взломать.
Код C++

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

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

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

Добавлено через 2 минуты
Что,кстати говоря,совершенно бессмысленно,так как с матем.точки зрения в 1 нет никаких особенностей,поэтому программа сама прекрасно справится без каких-либо инструкций.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2013, 07:41

Описать рекурсивную функцию вещественного типа, находящую приближенное значение корня K-й степени из числа X по формуле:
Описать рекурсивную функцию вещественного типа, находящую приближенное значение корня K-й степени...

Написать рекурсивную функцию нахождения степени числа
2. Написать рекурсивную функцию нахождения степени числа.

Реализовать рекурсивную функцию вычисления степени из числа
Добрый день , помогите решить задачи :...

Написать рекурсивную функцию для нахождения n-го числа арифметической прогрессии
2. Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru