프로그래밍 언어/C언어

C언어로 지수구하기

원원 2021. 12. 20. 21:36

안녕하세요 오늘은 지수를 구하는 코드를 작성해보겠습니다 . 

거듭제곱: 같은 수를 여러 번 곱한 것

밑 : 거듭제곱에서 곱한 수 (a)

지수 : 거듭제곱에서 밑이 곱해진 횟수 (n)

aⁿ

작성할 코드는 아래와 같은 형태인 자연수의 지수를 구할 수 있는 코드입니다
9 -> 3의 2
16 -> 2의 4
빨강색의 값이 구할 값 입니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
 
unsigned char get_index(unsigned char num,unsigned char under)
{
    char i=0;
    while(1)
    {
        if(num==1)
            return i;
 
        i++;
        
        if( (num%under) == 0)
            num = num/under;
        else
        {
            printf("ERROR \n");
            return 0;
        }
        
    }
}
 
int main()
{ // num > 1, under > 1
    printf("16은 2의 몇승? : %d \n",get_index(16,2));
    printf("16는 4의 몇승? : %d \n",get_index(16,4));
    printf("125는 5의 몇승? : %d \n",get_index(125,5));
    printf("100은 10의 몇승? : %d \n",get_index(100,10));
    
    if(get_index(100,3!= 0)
        printf("100은 3의 몇승? : %d \n",get_index(100,3));
}
cs

결과

13번째 줄에서 나머지가 0이 아니면 자연수가 아니므로 에러입니다
8번째 줄에서 num가 1이 되면 지수 값을 리턴 시켜줍니다