public static void main(String[] rags){
int [] 목표 = 새로운 int[100];
int 포인트 = 0;
//...여기서 배열을 초기화하세요
int 최대 = 목표[0];
max = getMax(최대, 포인트, 목표);
//...기타 처리
}
//재귀적 방법
public int getMax(int max,int point,int[] aim){
if(point==aim.length) //임계값
반품 최대치;
//임계값에 도달하지 못한 경우 최대값을 취하여 재귀를 수행합니다
max = 최대 >= 목표[포인트] ? max : 목표[포인트];
return getMax(max,point+1,aim);
}
공개 클래스 이진 재귀 검색 {
public static void main(String[] args) {
//배열을 정의하세요. 이진 검색 배열은 순서가 지정된 배열이어야 합니다!
int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 };
//검색 후 반환 값을 수락합니다. 인덱스 값, 그렇지 않은 경우 -1입니다.
//찾기 요소 테스트: 9
int a=바이너리(arr, 9, 0, arr.length - 1);
System.out.println("검색 중인 숫자의 인덱스 위치: "+a);
}
//매개변수 목록은 검색할 배열, 검색할 숫자, 헤드 인덱스, 테일 인덱스입니다!
공용 정적 int 바이너리(int[] arr, int key, int star, int end)//recursion
{
//들어올 때마다 중간 인덱스 값을 생성!
int mid = (별 + 끝) / 2;
//검색 중인 숫자가 머리 또는 꼬리보다 작거나 머리 인덱스가 꼬리 인덱스보다 큰 경우 해당 숫자가 없으며 -1이 반환됨을 의미합니다.
if (key arr[end] || 별표 > end) {
반품 -1;
}
//가운데 값이 검색 중인 숫자보다 작다면 헤더 인덱스를 다시 정의하고 중간 +1 위치로 이동하여 숫자의 절반을 걸러냅니다!
if (arr[mid]
//재귀를 시작하세요!
바이너리 반환(arr, key, mid + 1, end);
//그렇지 않고 중간 값이 검색 중인 숫자보다 큰 경우 꼬리 인덱스를 중간 -1 위치로 이동하고 숫자의 절반을 필터링하세요!
} else if (arr[mid] > key) {
//재귀를 시작하세요!
반환 바이너리(arr,key,star,mid - 1);
} 그 외 {
//찾지 못하면 색인으로 돌아갑니다!
중반납;
}
}
}
factest(8)는 Factest 함수를 입력합니다. if(n==1) return 1; // 설정되지 않은 경우 else return n*factest(n-1) // 반환 값은 8*factest(7)입니다. )
factest(7)는 Factest 함수를 입력합니다. if(n==1) return 1 // 확립되지 않은 경우 else를 실행합니다
else return n*factest(n-1); // 반환 값은 7*factest(6)
…
N=1까지 이때 if(n==1) return 1; // 성립되면 반환값은 1, 즉 1!=1
그런 다음 Factest(2)의 반환 값을 계산합니다. 2*factest(1) = 2
그런 다음 계속해서 Factest(3)의 반환 값을 계산합니다. 3*factest(2) = 6
... N=8까지,factest(8) = 8*factest(7) = 40320
을 얻습니다.작성하려는 Java 재귀 프로그램은 다음과 같습니다.
java.util.Scanner 가져오기;
공개 수업 GGG {
public static void main(String[] args) {
int N = 0;
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
for(int n=0;n
N=sc.nextInt();
int a[]=new int[N];
for(int i=0;i
a[i]=sc.nextInt();
}
System.out.print("case"+(n+1)+":");
프로세스(a,0);
System.out.println();
}
}
private static void process(int[] a, int n) {
if(n==0){
if(isPrime(a[n+1]))
System.out.print(1+"");
그밖에
System.out.print(0+"");
}else if(n==a.length-1){
if(isPrime(a[n-1]))
System.out.print(1+"");
그밖에
System.out.print(0+"");
반품;
}그밖에{
if(isPrime(a[n-1])&isPrime(a[n+1]))
System.out.print(2+"");
else if(isPrime(a[n-1])||isPrime(a[n+1]))
System.out.print(1+"");
그밖에
System.out.print(0+"");
}
프로세스(a,n+1);
}
public static boolean isPrime(int num) {
그래요;
for(i=2;i
if(num%i==0)
휴식;
}
if(i==num){
참을 반환합니다;
}
거짓 반환;
}
}실행 결과:
2
5
5 7 2 9 13
케이스 1:1 2 1 2 0
3
10 4 5
케이스 2:0 1 0
위 내용은 배열의 최대값을 찾기 위해 Java에서 재귀 함수를 작성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!