С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 25.07.2016
Сообщений: 16

Переделать код, что бы в нем применялась рекурсивная функция для возведения числа в степень

16.08.2016, 16:37. Показов 858. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста переделать код, что бы в нем применялась рекурсивная функция для возведения в степень
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <ctype.h>
double power(double a, int b);
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
   double x,xpow;
   int n;
   printf("Введите число и целую степень,");
   printf ("в которую\nчисло будет возведено. Для завершения программы");
   printf ( " введите q.\n");
   while (scanf("%lf%d", &x, &n) == 2)
{
xpow = power(x,n); // вызов функции
printf ( "%.3g в степени %d равно %.5g\n", x, n, xpow);
printf("Введите следующую пару чисел или q для завершения.\n");
}
   printf("Bye!");
   getchar();return 0;}
 
double power(double a, int b)
 
{ double pow = 1;
  int i;
  if(b==0)
  {if(a==0)
    printf("Результат возведения в степень 0 не определен, используем значение 1;\n");
    pow=1.0;
  }
  else if (a==0)
    pow=0.0;
  else if (b>0)
   for(i=1;i<=b;i++)
     pow*=a;
  else
    pow=1.0/power(a,-b);
return pow;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.08.2016, 16:37
Ответы с готовыми решениями:

Рекурсивная функция возведения вещественного числа в целую степень
Решите задачку, плиз ((( Описать рекурсивную функцию pow(x, n) от вещественного x (x &lt;&gt; 0) и целого n, которая вычисляет величину...

Рекурсивная функция возведения в степень
Народ, может кто помочь с заданиями? Очень нужно. Спасибо тем, кто откликнится. 4. Напишите рекурсивную функцию возведения в степень,...

Рекурсивная функция возведения в степень
Мое задание: Вычислить y = x^n(икс в степени n) по следующему правилу: y = ( x^n/2 )^2, если n четное и y = x * y^(n–1), если n...

6
 Аватар для sash23
563 / 410 / 259
Регистрация: 31.05.2016
Сообщений: 1,105
16.08.2016, 16:57
Рекурсивная функция выглядит примерно так:
C
1
2
3
4
double power(double a, int n) {
    if(n == 0) return 1;
    return power(a, n - 1) * a;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
17.08.2016, 15:31
Цитата Сообщение от Solc Посмотреть сообщение
printf("Результат возведения в степень 0 не определен, используем значение 1;\n");
Чего это вдруг он не определен? Очень даже определен и равен 1.
А вот такой код пошустрее работать будет
C
1
2
3
if (n==0) return 1;
if (n==1) return a;
return power(a, n/2)*power(a, n-n/2);
1
2 / 2 / 0
Регистрация: 25.07.2016
Сообщений: 16
17.08.2016, 16:00  [ТС]
Не знаю, такое задание в книге)

Добавлено через 16 минут
ну вообще:функция двух переменных x^y в точке 0;0 имеет неустранимый разрыв.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
17.08.2016, 16:38
Чтобы не было двойного рекурсивного вызова, я бы сделал примерно так:
C
1
2
3
4
double p=power(a,n/2);
p*=p;
if (n%2) return a*p;
return p;
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
17.08.2016, 17:02
Цитата Сообщение от Байт Посмотреть сообщение
Чего это вдруг он не определен? Очень даже определен и равен 1.
Там ноль в нулевой степени.
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
17.08.2016, 21:43
Цитата Сообщение от Catstail Посмотреть сообщение
Там ноль в нулевой степени.
Извиняйте. Не заметил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.08.2016, 21:43
Помогаю со студенческими работами здесь

Рекурсивная функция возведения в степень
Ребята, написал функцию для возведения в степень из учебника, но она почему-то не хочет работать. Вот код: int pow(int base, unsigned...

Функция возведения числа в степень (x^y) в калькуляторе
Помогите пожалуйста доработать калькулятор, не могу разобраться как в одном текст боксе сделать эту операцию, в идеале сделать как в...

Калькулятор: функция возведения числа в степень (x^y)
Все функции калькулятора работают, кроме одной: возведение введенного числа числа в введенную степень (x^y). Число считывается так: ...

Функция возведения целого числа а в целочисленную степень b
/*Функция возведения целого числа а в целочисленную степень b*/ #include &lt;stdio.h&gt; int power(int a, int b); int main() { ...

Рекуррентная функция возведения целого числа в целую степень
Здравствуйте! Помогите пожалуйста решить задачи!(((( 1) написать рекуррентную функцию возведения целого числа в целую степень, без...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru