Math.pow() 함수 직접 구현해보기!
public static double myexponent(int base, int exp) {
// 조건 1. 지수가 음수일 경우
// 2^-3 -- 1/ 2*2*2 ==> 2의 세제곱 분의 1
// 조건 2. 모든 수의 0 제곱은 1
double res = exponentRecur(base, exp); // 재귀함수 호출 시작!
return exp < 0 ? 1 / res : res; // 지수가 음수일 경우를 위한 삼항연산자
}
/**
* 거듭제곱을 도와주는 함수
* 재귀호출을 사용한다.
*/
public static double exponentRecur(int base, int exp) {
if (exp == 0) {
// 모든 수의 0제곱은 1
return 1.0;
} else if (exp == 1 || exp == -1) {
return base;
} else {
return base * exponentRecur( base, exp < 0 ? exp + 1 : exp - 1);
}
}'알고리즘 & 기능' 카테고리의 다른 글
| 재귀호출을 이용한 배열의 합계 구하기! (0) | 2020.11.04 |
|---|---|
| Fractal 연습해보기! (0) | 2020.11.04 |