Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

재귀를 사용하여 G.C.D를 찾는 Java 프로그램

<시간/>

이 기사에서는 재귀를 사용하여 G.C.D를 찾는 방법을 이해할 것입니다. 재귀 함수는 특정 조건이 충족될 때까지 자신을 여러 번 호출하는 함수입니다. 두 숫자의 최대공약수(GCD)는 두 숫자를 나누는 가장 큰 숫자입니다.

재귀는 자기 유사 방식으로 항목을 반복하는 프로세스입니다. 프로그래밍 언어에서 프로그램이 동일한 함수 내에서 함수를 호출하도록 허용하는 경우 이를 함수의 재귀 호출이라고 합니다.

많은 프로그래밍 언어는 스택을 통해 재귀를 구현합니다. 일반적으로 함수(호출자)가 다른 함수(피호출자) 또는 자신을 피호출자로 호출할 때마다 호출자 함수는 실행 제어를 피호출자에게 넘깁니다. 이 전송 프로세스에는 호출자에서 호출 수신자에게 전달할 일부 데이터가 포함될 수도 있습니다.

아래는 동일한 데모입니다 -

입력

입력이 -

라고 가정합니다.
24와 36의 두 숫자를 입력하세요.

출력

원하는 출력은 -

24와 36의 G.C.D는 12입니다.

알고리즘

단계 1 - START단계 2 - my_input_1, my_input_2 및 my_result의 세 값 선언단계 3 - 사용자로부터 필요한 값 읽기/값 정의단계 4 - 두 개의 정수를 입력으로 사용하고 두 개를 반환하는 재귀 함수 'CommonFactor'가 정의됩니다. 값 즉 'my_input_2' 값 및 'my_input_1' % 'my_input_2' 값. 5단계 - 'my_input_2' 값이 0보다 클 때까지 함수가 재귀적으로 호출됩니다. 결과를 저장합니다. 6단계 - 결과 표시 7단계 - 중지 

예시 1

여기에서 입력은 프롬프트에 따라 사용자가 입력하고 있습니다. 우리코딩 그라운드 도구에서 이 예제를 라이브로 사용해 볼 수 있습니다. 재귀를 사용하여 G.C.D를 찾는 Java 프로그램 .

 import java.util.Scanner;public class GCD { public static void main(String[] args) { int my_input_1, my_input_2, my_result; System.out.println("필수 패키지를 가져왔습니다."); 스캐너 my_scanner =새로운 스캐너(System.in); System.out.println("리더 객체가 정의되었습니다. "); System.out.print("첫번째 숫자를 입력하세요 :"); my_input_1 =my_scanner.nextInt(); System.out.print("두 번째 숫자를 입력하세요 :"); my_input_2 =my_scanner.nextInt(); my_result =CommonFactor(my_input_1, my_input_2); System.out.printf("%d 및 %d의 G.C.D는 %d입니다.", my_input_1, my_input_2, my_result); } public static int CommonFactor(int my_input_1, int my_input_2){ if (my_input_2 !=0) return CommonFactor(my_input_2, my_input_1 % my_input_2); 그렇지 않으면 my_input_1을 반환합니다. }}

출력

필수 패키지를 가져왔습니다.리더 개체가 정의되었습니다.첫 번째 숫자를 입력하십시오:24두 번째 숫자를 입력하십시오:3624와 36의 G.C.D는 12입니다.

예시 2

여기서 정수는 이전에 정의되었으며 그 값은 콘솔에 액세스되어 표시됩니다.

공개 클래스 GCD { 공개 정적 무효 메인(문자열[] 인수) { int my_input_1, my_input_2, my_result; my_input_1 =24; my_input_2 =36; System.out.println("숫자는 " +my_input_1 +" 및 " +my_input_2로 정의됩니다); my_result =CommonFactor(my_input_1, my_input_2); System.out.printf("%d 및 %d의 G.C.D는 %d입니다.", my_input_1, my_input_2, my_result); } public static int CommonFactor(int my_input_1, int my_input_2){ if (my_input_2 !=0) return CommonFactor(my_input_2, my_input_1 % my_input_2); 그렇지 않으면 my_input_1을 반환합니다. }}

출력

숫자는 24와 36으로 정의됩니다. 24와 36의 G.C.D는 12입니다.