개발 공부/자료구조&알고리즘

[JAVA] 재귀로 제곱 구하기(x의 n제곱/n승)/사용자 입력(scanner)

yong_DD 2021. 6. 16. 22:20

재귀란?

 함수 내에서 자기 자신을 또다시 호출하는 행위


<구현해야 하는 조건>

 

1. x의  n제곱을 구하기 위해서는 x를 n번 만큼 곱해야한다.

2. x가 1일 경우 무조건 1이다.


[전체코드]

 

public static void main(String[] args) {
	System.out.println("x의 값을 입력해주세요.");
	Scanner scanner = new Scanner(System.in);
	int x = scanner.nextInt();
		
	System.out.println("n의 값을 입력해주세요.");
	int n = scanner.nextInt();
		
	System.out.println("결과값");
	int result = square(x,n);
		
	System.out.println(result);
	
}
	
private static int square(int x, int n) {
	if(x==1) {
		return 1;
	}
		
	if(n<=1) {
		return x;
	}
	
	return x*square(x,n-1);
			
}

[예시 설명 - 2의 4제곱] 

 

square(2,4)

   return 2 * square(2,3)

                 2 * square(2,2)

                      2 * square(2,1)

                           if(n<=1) 조건 충족으로 2

 = return 2 * 2 * 2 * 2

 = 16


[결과 화면]