Создать функцию, которая возводит число в степень. В функции два аргумента. Первый аргумент - число, которое нужно возвести в степень. Второй аргумент - степень числа. Реализовать через умножение. правильным ли будет такое решение
функция Функция1 (параметр)
// возврат параметр * параметр
//конецфункции
// сообщить (функция1(3));
C/C++
Создать функцию, которая возводит число в степень.Запрещено использовать функцию возведения в степень.
Программа с функцией быстрого возведение вещественного числа в целую степень:
def fastExp(x, n):
if n == 0:
return 1.0
elif n < 0:
return 1.0 / fastExp(x, -n)
else:
return x*fastExp(x, n-1) if n&1 else fastExp(x, n//2)**2
while True:
x, n = input('x n: ').split()
x, n = float(x), int(n)
print(fastExp(x, n))
Для вещественных показателей степеней алгоритм, естественно, совсем другой.Да, лучше использовать быстрый алгоритм. Но рекурсия не требуется:
double pown(double x, int n) {
if (n < 0) {
x = 1.0 / x;
n = -n;
}
double res = 1.0;
for (; n; n >>= 1, x *= x) {
if (n & 1) { res *= x; }
}
return res;
}
Функция возведения числа в целую положительную степень.
#include
using namespace std;
double upow(double x, unsigned y) {
auto m = 1.0;
for (auto i = 0U; i < y; ++i) m *= x;
return m;
}
int main() {
auto x = 5.0;
auto y = 3U;
auto p = upow(x, y);
cout
У тебя получается возведение числа в квадрат. А если надо в степень 5? Или в 10?
На школьном уровне хватит с целыми положительными степенями разобраться, а если уж совсем "высшим пилотажем" - ещё с 0 и с отрицательными. Так-то можно ещё с дробными, но как - этого в школах не проходят, институтский курс
На школьном уровне хватит с целыми положительными степенями разобраться, а если уж совсем "высшим пилотажем" - ещё с 0 и с отрицательными. Так-то можно ещё с дробными, но как - этого в школах не проходят, институтский курс
int power(int a, int n) {
if (n == 0) {
return 1;
} else {
return a * power(a, n - 1);
}
}
Сергей Кожин
красиво, но не уверен, что спрашивающий понимает рекурсию
Rahman Alimbetov
Тут ещё нюанс: нигде в задании не написано, что показатель степени - натуральный, или хотя бы целый.
int power (int a,int b)
{int c = 1;
for (int i = 0; i<b;i++)
{c=c*a};
return c;
}
как-то так. мог накосячить, писал прямо тут, да и уже несколько лет ничего не писал
{int c = 1;
for (int i = 0; i<b;i++)
{c=c*a};
return c;
}
как-то так. мог накосячить, писал прямо тут, да и уже несколько лет ничего не писал
а если степень больше двойки? там через цикл скорее всего надо
нет, правильным такое решение не будет.
в условии у функции 2 аргумента, в вашем решении 1.
в условии у функции 2 аргумента, в вашем решении 1.
Похожие вопросы
- Напишите рекурсивную функцию, которая принимает двухмерный массив целых чисел и количество сдвигов и выполняет
- Рекурс.функцию, которая принимает 2х-мерный массив целых чисел и кол-во сдвигов и выполняет круговой сдвиг массива влево
- Написать РЕКУРСИВНУЮ функцию, которая принимает двухмерный массив целых чисел и выполняет круговой сдвиг массива ВЛЕВО.
- Можно ли через функцию memset записать число в элемент массива больше чем 255? (Си)
- Написать код. Использовать функции
- Как написать функцию которая вычисляет арктангенс из любого числа на c++ без использования библиотек
- Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде
- С++ Составить функцию, которая меняет местами пары соседних элементов в массиве
- Написал функцию, которая добавляет элемент в конец массива, как можно улучшить? Нули не учитываются.
- Функция, которая вставляет новый элемент до каждого вхождения заданного элемента
x^y = exp(y •㏑ x).