programing

C의 거듭제곱으로?

prostudy 2022. 7. 21. 23:53
반응형

C의 거듭제곱으로?

그래서 비단뱀에서 내가 해야 할 일은

print(3**4) 

그럼 81이 되겠네요

이거 C에서 어떻게 해요?제가 검색을 좀 해봤는데exp()기능하지만 사용법을 모르기 때문에 미리 감사 드립니다.

당신은 필요하다pow();에서 기능하다math.hheader를 클릭합니다.
구문

#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 베이스의 시스템에서는 사용할 수 있습니다.

사용할 수 있습니다.pow(base, exponent)부터#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);
}
#include <math.h>


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

사실 C에는 동력 연산자가 없습니다.결과를 얻으려면 루프를 수동으로 실행해야 합니다.exp 함수도 그런 방식으로만 작동합니다.그러나 이 기능을 사용해야 하는 경우 다음 헤더를 포함하십시오.

#include <math.h>

그러면 pow를 사용할 수 있습니다.

C에는 이러한 사용에 대한 연산자가 없지만 함수 집합은 다음과 같습니다.

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

후자의 2개는 C99 이후 표준 C의 일부에 불과하다는 점에 주의해 주십시오.

다음과 같은 경고가 표시되는 경우:

빌트인 함수 'pow'의 암묵적 선언을 실행할 수 없습니다.

그건 네가 잊어버렸기 때문이야#include <math.h>.

그냥 사용하다pow(a,b)정확히는3**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;
}

이는 효과적으로 반복 배수를 수행하지만 비트 표현을 사용하여 이를 약간 줄입니다.낮은 정수 전력의 경우 이는 매우 효과적입니다.

언급URL : https://stackoverflow.com/questions/18733675/to-the-power-of-in-c

반응형