알고리즘 - 한 노 타 & 피 보 나치 수열 구 화
한 노 타 문 제 는 인도의 오래된 전설 에서 유래 한 퍼 즐 장난감 이다.대 범 천 은 세 계 를 만 들 때 세 개의 금강석 기둥 을 만 들 었 고 한 기둥 에 아래 에서 위로 크기 순 으로 64 개의 황금 원반 을 쌓 았 다.대 범 천 은 브라만 에 게 원반 을 아래 부터 크기 순 으로 다른 기둥 위 에 다시 놓 으 라 고 명령 했다.또 작은 원반 에 서 는 원반 을 확대 할 수 없고, 세 기둥 사이 에 서 는 한 번 에 한 개의 원반 만 이동 할 수 있 도록 규정 하고 있다.
프로그램 구현:
/**
*
*
* @author song
*/
public class Hanuota {
/**
*
*
* @param n
* @param A 1
* @param B 2
* @param C 3
*/
private static void hanoi(int n, char A, char B, char C) {
if (n == 1) {
move(A, 1, C);
} else {
hanoi(n - 1, A, C, B);
move(A, n, C);
hanoi(n - 1, B, A, C);
}
}
/**
*
*
* @param z1 1
* @param n n
* @param z2 2
*/
private static void move(char z1, int n, char z2) {
System.out.println(" " + z1 + " " + n + " " + z2);
}
public static void main(String... args) {
hanoi(3, 'A', 'B', 'C');
}
}
이상 의 절 차 는 귀속 해결 을 채택 한다.또 다른 전형 적 인 문 제 는 재 귀적 으로 해결 할 수 있다. 피 보 나치 수열 구 와
피 보 나 계 수 는 다음 과 같은 수열 을 말한다. 1, 1, 2, 3, 5, 8, 13, 21................................................................
/**
* Fibonacci
*
* @author song
*/
public class Fibonacci {
/**
* Fibonacci
*
* @param n n
* @return n
*/
public static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
public static void main(String... args) {
int sum = 0;
for (int index = 1; index <= 10; index++) {
int val = fib(index);
System.out.println(val);
sum += val;
}
System.out.println(" :" + sum);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.