컴퓨터 튜토리얼 컴퓨터 지식 자바의 재귀 알고리즘에 대한 자세한 설명을 여러분께 부탁드리고 싶습니다.

자바의 재귀 알고리즘에 대한 자세한 설명을 여러분께 부탁드리고 싶습니다.

Jan 07, 2024 pm 12:14 PM
ja의 재귀 알고리즘 자바의 재귀 알고리즘에 대해 좀 더 자세히 문의드리고 싶습니다. Java에서 재귀 방법을 사용하여 중복 없이 n개의 숫자 얻기

Java의 재귀알고리즘에 대해 자세한 설명을 부탁드리고 싶습니다

공개 수업 테스트{

public static int getResult(int 매개변수) {

if (매개변수 == 0) { 결과 반환; } 또 다른 { 결과 *= 매개변수; return recursiveFunction(매개변수 - 1, 결과); }

반품번호;

}

public static void main(String[] args) { //여기에 코드를 작성하세요 }

int 결과 = 결과(5);

System.out.println(결과);

}

}

실행 원리는 다음과 같습니다.

result(5) 처음에는 매개변수가 1보다 작거나 같은지 확인하기 위해 함수 본문을 입력합니다. 이때 매개변수는 5이고 조건이 성립되지 않습니다. 즉, 5 * 결과(5-1)이고, 프로그램이 반복적으로 실행됩니다...

5*결과(5-1)

4*결과(4-1)

3*결과(3-1)

2 * result(2 - 1) 이 시점에서 매개변수는 1과 같고 조건을 충족합니다. 함수는 1을 반환하고 레이어별로 반환합니다. 즉:

결과(1) =1

2*결과(1)=2*1=2

3*결과(2)=3*2=6

4*결과(3)=4*6=24

5*결과(4)=5*24=120

자바의 재귀적 방법을 사용하여 n개의 숫자를 중복 없이 완전히 배열하세요. n 3

프로그램은 다음과 같으며 입력 형식은 다음과 같습니다.

5

3 1 2 1 2는 첫 번째 줄이 다음에 입력할 숫자의 개수를 나타내는 숫자라는 의미입니다. 두 번째 줄에는 정렬할 숫자를 나타내는 n개의 숫자가 있습니다. 입력에서는 정렬할 숫자가 모두 음수가 아닌 숫자라고 가정합니다.

java.io.파일 가져오기;

java.io.FileNotFoundException 가져오기;

java.util.Arrays 가져오기;

java.util.Scanner 가져오기;

공개 수업 메인 {

정적 최종 int maxn = 1000;

int n; //배열 요소 수

int[]a // 배열

boolean[] Used; // 재귀 프로세스 중에 해당 요소가 사용되었는지 여부를 표시하는 데 사용되는 보조 변수, Used[i]는 i 번째 요소가 사용되었는지 여부를 나타냅니다

int[] cur; // 현재 배열 번호를 저장합니다

// 중복 없이 전체 배열을 반복적으로 인쇄합니다. 현재 idx 위치에 인쇄 중입니다

void print_comb(int idx) {

idx == n이면 마지막 요소를 순회했으며 cur를 출력할 수 있다는 의미입니다.

for(int i = 0; i

if(i > 0) System.out.print("");

System.out.print(cur[i]);

}

System.out.println();

}

int last = -1; // 중복을 피하기 위해 마지막 변수를 사용하여 마지막 검색 값을 기록합니다

for(int i = 0; i

if(used[i]) 계속;

if(last == -1 || a[i] != last) { // 현재 숫자가 반복되지 않고 사용되지 않은 경우에만 재귀가 계속됩니다

마지막 = a[i];

cur[idx] = a[i];

//역추적 방법

used[i] = 사실;

print_comb(idx + 1);

사용됨[i] = 거짓;

}

}

}

public void go()는 FileNotFoundException을 발생시킵니다. // 메소드 본문 구현 }

{

Scanner in = new Scanner(new File("data.in")); 구문은 data.in이라는 파일에서 입력을 읽는 데 사용되는 in이라는 Scanner 개체를 만드는 것입니다.

//데이터 읽기 및 정렬

n = in.nextInt();

a = 새로운 정수[n];

for (int i = 0; i

Arrays.sort(a);

//보조변수 초기화 및 중복없는 전체 배열 시작

cur = 새로운 int[n];

used = 새로운 부울[n];

for(int i = 0; i

print_comb(0);

in.close();

}

public static void main(String[] args)에서 FileNotFoundException이 발생합니다. 이는 프로그램 항목을 시작하는 데 사용되는 Java 프로그램의 기본 메소드입니다. 이 방법에서는 파일 읽기, 데이터 처리 등과 같은 일부 작업을 수행할 수 있습니다. 그중 FileNotFoundException 발생은 실행 중에 파일을 찾을 수 없음 예외가 발생할 수 있음을 나타냅니다. 이 예외가 발생하면 프로그램은 FileNotFoundException 예외를 발생시킵니다. 이 방법에서는 파일 읽기 및 예외 처리를 처리하는 특정 코드 논리를 작성할 수 있습니다.

new Main().go();

}

} 객관적으로 말하면 비재귀적 및 비반복적 전체 순열은 상대적으로 간단하고 효율적입니다.

Java에서 재귀의 역할은 무엇인가요? 재귀를 사용하는 이유

두 질문은 사실 하나의 질문이겠죠?

재귀의 역할: 재귀 알고리즘은 재귀로 정의된 일부 문제를 해결할 수 있습니다.

먼저 재귀적 정의의 문제점이 무엇인지 이해해야 합니다. 간단히 말해서, 재귀적으로 정의된 문제는 구조는 동일하지만 크기가 더 작은 더 작은 문제를 포함하는 큰 문제입니다.

예를 들어 n 계승의 정의는 다음과 같이 이해될 수 있습니다.

n!= n*(n-1)!

위의 분석을 통해 (n-1)이 n!보다 작은 문제라는 결론을 내리는 것은 어렵지 않습니다. 이 방법에 따라 문제를 지속적으로 분해함으로써 우리는 기본적인 알려진 데이터를 얻을 수 있습니다. 그런 다음 역추출을 통해 최종 결과를 얻을 수 있습니다.

n의 계승 알고리즘은 다음과 같습니다.

private static int jieCheng(int n) { 인수 n이 계산할 값을 나타내는 팩토리얼(factorial)을 계산하는 방법입니다. 자세한 설명은 다음과 같습니다. - "private"은 메소드가 현재 클래스에서만 표시되고 다른 클래스에서는 액세스할 수 없음을 의미합니다. - "정적"은 메서드가 정적 메서드이고 개체를 인스턴스화하지 않고 클래스 이름을 통해 직접 호출할 수 있음을 의미합니다. - "int"는 메서드가 결과로 정수 값을 반환한다는 의미입니다. - "jieCheng"은 메소드의 이름이며 필요에 따라 이름을 지정할 수 있습니다.

if(n==1)

반환 1;

그밖에 {

return n*jieCheng(n-1);

}

}

또한 이진 트리의 정의도 재귀적이므로 많은 이진 트리 작업이 재귀를 통해 구현됩니다.

재귀를 사용하면 프로그램이 매우 간결해집니다.

자바의 재귀 적용! f20 1 f21 4 fn 2 2 fn 1 fnwhere

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

publicclassTest {

publicstaticintf(intn){

if(n==20){

반품1;

}elseif(n==21){

return4;

}elseif(n

returnf(n+2)-2*f(n+1);

}그밖에{

return2*f(n-1)+f(n-2);

}

}

public static void main(String[] args) {

System.out.println(f(10)); //f(10)의 값을 인쇄합니다

}

}

테스트되었습니다. 주 함수에 f(n)을 입력합니다. 여기서 n은 수동으로 조정된 매개변수이며 해당 출력 결과를 얻을 수 있습니다.

위 내용은 자바의 재귀 알고리즘에 대한 자세한 설명을 여러분께 부탁드리고 싶습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

스팀 클라우드 오류를 수정하는 방법? 이 방법을 시도하십시오 스팀 클라우드 오류를 수정하는 방법? 이 방법을 시도하십시오 Apr 04, 2025 am 01:51 AM

증기 구름 오류는 여러 가지 이유로 인해 발생할 수 있습니다. 게임을 원활하게 플레이하려면 게임을 시작하기 전에이 오류를 제거하기 위해 몇 가지 조치를 취해야합니다. Php.cn Software는이 게시물에서 가장 유용한 정보뿐만 아니라 몇 가지 최선의 방법을 소개합니다.

PC 앱 스토어 맬웨어를 제거하십시오 - 전체 가이드! PC 앱 스토어 맬웨어를 제거하십시오 - 전체 가이드! Apr 04, 2025 am 01:41 AM

컴퓨터에 PC App Store라는 프로그램이 있고 의도적으로 설치되지 않은 경우 PC가 맬웨어에 감염 될 수 있습니다. Php.cn 의이 게시물은 PC 앱 스토어 맬웨어를 제거하는 방법을 소개합니다.

FixDisk Windows 7 : Windows 7에서 하드 디스크를 확인하십시오. FixDisk Windows 7 : Windows 7에서 하드 디스크를 확인하십시오. Apr 14, 2025 am 12:40 AM

하드 드라이브가 문제가 발생했다고 의심되면 Windows 7에서 오류를 확인할 수 있습니다.이 Php.cn Post는 FixDisk Wind

EW_USBCCGPFILTER.SYS에 의해 코어 격리가 차단됩니까? 다음은 수정 사항입니다! EW_USBCCGPFILTER.SYS에 의해 코어 격리가 차단됩니까? 다음은 수정 사항입니다! Apr 13, 2025 am 12:47 AM

많은 Surfacebook 사용자는 Windows 11/10에서 "EW_USBCCGPFILTER.SYS에 의해 차단 된 핵심 분리"를 충족한다고보고합니다. Php.cn 의이 게시물은 성가신 문제를 해결하는 데 도움이됩니다. 당신의 독서를 계속하십시오.

HackTool : Win64/ExplorerPatcher! MTB- 제거 방법? HackTool : Win64/ExplorerPatcher! MTB- 제거 방법? Apr 04, 2025 am 01:23 AM

ExplorErpatcher는 Windows 11 시작 메뉴, 작업 표시 줄, 파일 탐색기 등을 사용자 정의 할 수있는 오픈 소스 휴대용 실행 파일입니다. 그러나 많은 사용자가 HackTool : Win64/ExplorerPatcher! MTB에 대해이 트로이 목마 경고를받습니다. 왜 그런 일이 발생합니까?

그래픽 드라이버를 설치 한 후 검은 색 화면에 대한 Trinkles 수정 그래픽 드라이버를 설치 한 후 검은 색 화면에 대한 Trinkles 수정 Apr 15, 2025 am 12:11 AM

Windows 10/11에서 NVIDIA 드라이버와 같은 그래픽 드라이버를 설치 한 후 검은 색 화면을 만난 적이 있습니까? 이제 Php.cn 의이 게시물에서 NVIDIA 드라이버 업데이트 블랙 스크린에 대한 솔루션을 시도 할 가치가 있습니다.

ISO를 통해 Windows X-Lite Optimum 11 23H2 HOME/PRO 설치 방법 ISO를 통해 Windows X-Lite Optimum 11 23H2 HOME/PRO 설치 방법 Apr 09, 2025 am 12:49 AM

Windows X-Lite Optimum 11 23H2 Home 또는 Optimum 11 Pro는 Windows 11 23H2를 기반으로 사용자 정의 라이트 시스템이 필요한 경우 옵션이 될 수 있습니다. 계속 읽고 Php.cn은 Optimum 11 23H2 ISO를 다운로드하고 PC에 프로 또는 홈을 설치하는 방법을 보여줍니다.

Win 11은 22621.3078 및 22631.3078 (KB5034204)을 출시합니다 Win 11은 22621.3078 및 22631.3078 (KB5034204)을 출시합니다 Apr 05, 2025 am 01:35 AM

Windows 11 KB5034204의 새로운 개선 및 버그 수정을 알고 싶으십니까? 장치에서 Windows 11 KB5034204를 얻는 방법을 원하십니까? 이 게시물에서는 Php.cn 소프트웨어가 알고 싶은 정보를 소개합니다.

See all articles