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

+ Recent posts