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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jen9_1992
Сообщений: n/a
#1

Рекурсивный способ решения - C++

28.02.2011, 21:56. Просмотров 691. Ответов 2
Метки нет (Все метки)

Вычислить y = x^n по следующему правилу: y = ( x^(n/2))^2, если n четное и y = x *y^(n–1), если n нечетное.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 21:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивный способ решения (C++):

Рекурсивный способ и не рекурсивный способ - C++
Разработать программы по алгоритму с использованием рекурсивной функции и без использования рекурсивной функции. Задание. ...

Рекурсивный способ вывода чисел - C++
Необходимо написать программу, рекурсивный способ вывода чисел. Пример: 5 4 3 2 1 0

Рекурсивный способ суммирования последовательности чисел - C++
Необходимо написать программу, рекурсивный способ суммирования последовательных чисел: 0 1 2 3. Сумма = 6

Альтернативный способ решения - C++
Приветствую всех программистов, зашедших в эту тему. В общем, начну с условия задачи: "Написать программу объединения трех строк “The...

Составить программу решения задачи, используя рекурсивный алгоритм - C++
Задание во вложение

Самый быстрый способ решения задачи a+b - C++
несколько раз ходил на олимпиады, во многих из них в пробном туре даётся задача а+б, решаю её стандартным способом: cin >> a >> b; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
01.03.2011, 06:20 #2
C
1
2
3
4
5
6
double f(double x, unsigned int n)
{
    if (n==0) return 1.;
    if (n%2==1) return pow( f(x, n/2), 2);
    if (n%2==0) return x*f(x, n-1);
}
В этом коде как минимум есть 2 ошибки. Что нужно исправить?
easybudda
Модератор
Эксперт CЭксперт С++
9532 / 5525 / 932
Регистрация: 25.07.2009
Сообщений: 10,611
01.03.2011, 08:44 #3
Цитата Сообщение от Jen9_1992 Посмотреть сообщение
y = x^n по следующему правилу: y = ( x^(n/2))^2, если n четное и y = x *y^(n–1), если n нечетное.
Ничего, если проще, за то с рекурсией
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
    
double simple_pow(double val, unsigned int pwr) { return ( pwr ) ? val * simple_pow(val, pwr - 1) : 1; }
 
int main(void){
    double val;
    unsigned int pwr;
    
    while ( printf("> ") && scanf("%lf %u", &val, &pwr) == 2 )
        printf(": %f\n", simple_pow(val, pwr));
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2011, 08:44
Привет! Вот еще темы с ответами:

Найти более оптимальный способ решения задачи - C++
Вот задача: Имеется две таблицы: 1) Items (Id identity(1,1) int, Name varchar(50)) в которой хранятся составляющие продукты и...

предлагаю людям класс "рекурсивный обход матрицы" для решения задач на такую тематику - C++
Друзья! Ввиду возникшей необходимости мной был написан класс &quot;рекурсивный обход матрицы&quot;; Теперь задачи на такую тематику будут решаться...

Рекурсивный алгоритм - C++
Даны натуральные числа &quot;N&quot; и &quot;M&quot; надо решить с помощью с++ не могу переставить с этим кодом с++ #include &lt;stdio.h&gt; #include...

Рекурсивный спуск - C++
нужно реализовать рекурсивный спуск буквально за час, буду оч признателен. Нужно найти ошибку в синтаксисе и помочь с семантикой, либо...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru