Подтвердить что ты не робот

К власти в C?

Итак, в python все, что мне нужно сделать, это

print(3**4) 

Что дает мне 81

Как это сделать в C? Я немного искал и сказал функцию exp(), но понятия не имею, как ее использовать, заранее спасибо

4b9b3361

Ответ 1

Вам нужна функция pow(); из заголовка math.h.
синтаксис

#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);

Здесь x является базовым, а y - показателем степени. результатом является x^y.

использование

pow(2,4);  

result is 2^4 = 16. //this is math notation only   
// In c ^ is a bitwise operator

И не забудьте включить math.h, чтобы избежать предупреждения ( "incompatible implicit declaration of built in function 'pow'" ).

Свяжите математическую библиотеку, используя -lm во время компиляции. Это зависит от вашей среды.
Например, если вы используете Windows, это не требуется для этого, но в системах на базе UNIX.

Ответ 2

В C нет оператора для такого использования, но есть семейство функций:

double pow (double base , double exponent);
float powf (float base  , float exponent);
long double powl (long double base, long double exponent);

Обратите внимание, что последние два являются частью стандарта C только с C99.

Если вы получите предупреждение, например:

"несовместимое неявное объявление встроенной функции 'pow'"

Это потому, что вы забыли #include <math.h>.

Ответ 3

#include <math.h>


printf ("%d", (int) pow (3, 4));

Ответ 4

Для другого подхода обратите внимание, что все стандартные функции библиотеки работают с типами с плавающей запятой. Вы можете реализовать функцию целочисленного типа следующим образом:

unsigned power(unsigned base, unsigned degree)
{
    unsigned result = 1;
    unsigned term = base;
    while (degree)
    {
        if (degree & 1)
            result *= term;
        term *= term;
        degree = degree >> 1;
    }
    return result;
}

Это эффективно повторяет кратность, но сокращает это бит, используя представление битов. Для низких целых степеней это довольно эффективно.

Ответ 5

вы можете использовать pow(base, power) от #include <math.h>

или создать свой собственный:

int myPow(int x,int n)
{
    int i; /* Variable used in loop counter */
    int number = 1;

    for (i = 0; i < n; ++i)
        number *= x;

    return(number);
}

Ответ 6

просто используйте pow(a,b), который точно 3**4 в python

Ответ 7

На самом деле в C у вас нет оператора электропитания. Вам нужно будет вручную запустить цикл, чтобы получить результат. Даже функция exp работает только таким образом. Но если вам нужно использовать эту функцию, включите следующий заголовок

#include <math.h>

то вы можете использовать pow().