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

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

Восстановить пароль Регистрация
 
Jen9_1992
Сообщений: n/a
28.02.2011, 21:56     Рекурсивный способ решения #1
Вычислить 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++
C++ рекурсивный алгоритм
C++ Альтернативный способ решения
C++ Самый быстрый способ решения задачи a+b
C++ Рекурсивный способ и не рекурсивный способ
C++ Рекурсивный алгоритм F

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 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
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
Yandex
Объявления
01.03.2011, 08:44     Рекурсивный способ решения
Ответ Создать тему
Опции темы

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