Лучшие помощники
- Megamozg 2190 б
- Matalya1 1800 б
- DevAdmin 1690 б
- arkasha_bortnikov 860 б
- Dwayne_Johnson 845 б
2 апреля 2023 21:09
642
Даю 20баллов!!! Только на C++!!!!!Быстрое возведение в степень
Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:
an=(a2)n/2 при чётном n,
an=a∗an−1 при нечётном n.
Реализуйте алгоритм быстрого возведения в степень. Если вы всё сделаете правильно, то количество умножений будет иметь порядок log2n.
Нельзя использовать встроенную операцию возведения в степень, в силу особенностей тестирующей системы избегайте слова pow в названии функции.
Входные данные
Вводится действительное число a и целое неотрицательное число n.
Выходные данные
Выведите ответ на задачу.
Примеры
1
ответ
Ответ:
#include <iostream>
double s(double a, int er)
{
if (er == 0)
{
return 1;
}
if (er % 2 == 0)
{
return s(a * a, er / 2);
}
return a * s(a, er - 1);
}
int main()
{
double a;
int n;
std::cin >> a >> n;
std::cout << s(a, n);
return 0;
}
Объяснение:
#include <iostream>
double s(double a, int er)
{
if (er == 0)
{
return 1;
}
if (er % 2 == 0)
{
return s(a * a, er / 2);
}
return a * s(a, er - 1);
}
int main()
{
double a;
int n;
std::cin >> a >> n;
std::cout << s(a, n);
return 0;
}
Объяснение:
0
·
Хороший ответ
4 апреля 2023 21:09
Остались вопросы?
Еще вопросы по категории Информатика
Минимальным объектом, используемым в растровом графическом редакторе, является: * 1.Точка экрана (пиксель) 2.Символ 3.Геометрическая фигура...
перевести из двоичной системы в десятичную, восьмеричную, шестнадцатиричную системы число:1000111,11012 Решенье дробью...
Задача 5: Поезд Два друга-биолога Василий и Петр едут в Африку на поезде. Билеты они покупали в разное время и не смогли получить места в одном вагоне...
Какой объем данных имеет моноаудиофайл, длительность звучания которого 1 секунда, при среднем качестве звука (16 бит, 24 кГц)?...
1.Отметьте все операторы, в результате выполнения которых на экран выводится значение переменной a. 1)read(a);2)write(a);3)a:=25;4)write('Ответ...
Все предметы