[C언어 코드업 문제풀이] CodeUp 1566 : [기초-함수작성] 함수로 거듭제곱 리턴하기

코드업 1566번 함수로 거듭제곱 리턴하기 문제 풀이 해답입니다.

 

1. 문제 설명

 

int 형 자연수 두 개(a, n)를 입력 받아
거듭 제곱(exponentiation, a^n)한 결과 값을 출력하시오. 

단, 함수형 문제이므로 함수 pow()만 작성하여 제출하시오.

참고
수학식 a^n 으로 표현되는 거듭 제곱은 a를 n번 거듭 곱한 수를 의미한다.
예를 들어 2^10 은 2를 10번 거듭해서 곱한 값을 의미하며 1024이다.


[함수형 문제란??]
함수형 문제는 기본적인 main() 등은 미리 작성되어 있습니다.
미리 작성되어 있는 프로그램은 다음과 같습니다.

미리 작성된 프로그램을 복사해 붙여 넣은 후 함수 부분을 설계하여 작성해 넣고,
테스트 한 후, 함수 부분만 제출하세요.

 

1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int a, n;
// 이 부분에 들어가야 될 코드를 작성하여 제출
int main()
{
  scanf("%d%d"&a, &n);
  printf("%lld\n", pow(a, n));
}

 

2. 입력

 

int 형 자연수 두 개(a, n)가 공백을 두고 입력된다.
(1 <= a^n <= 9223372036854775807)
* 9223372036854775807 는 long long int 의 양수 최댓값

 

3. 출력

 

a 를 n 번 거듭제곱한 결과를 출력한다.

 

4. 입력 예시

 

2 61

 

5. 출력 예시

 

2305843009213693952

 

6. 문제 풀이

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int a, n;
long long int pow(int a, int n) {
    long long int result = 1;;
    if (a == 1) {
        result = 1;
    }
    else {
        for (int i = 1; i <= n; i++) {
            result *= a;
        }
    }
    return result;
}
int main()
{
  scanf("%d%d"&a, &n);
  printf("%lld\n", pow(a, n));
}
 

 

댓글()