이 글은 주로 Java로 구현된 원숭이 먹는 복숭아 문제 알고리즘을 소개합니다. 원숭이가 복숭아를 먹는 문제에 대해 간략하게 설명하고 Java에서 원숭이가 복숭아를 먹는 문제를 해결하기 위한 구체적인 구현 기술을 예제 형식으로 제공합니다. 기사
이 예에서는 Java로 구현된 원숭이가 복숭아를 먹는 문제 알고리즘을 설명합니다. 참고용으로 내용을 공유합니다.
원숭이가 복숭아를 먹는 문제
개요: 원숭이가 첫날 복숭아 N개를 따서 부족해서 절반을 먹었습니다. 둘째 날 Tian은 남은 복숭아를 절반, 또 하나를 더 먹었습니다. 그 이후로 그는 n일째에 다시 먹고 싶었을 때 복숭아가 한 개밖에 남지 않았습니다. . 부탁드립니다. 첫날에 복숭아를 몇 개 따셨나요?
사고 및 계산 단계(전체 복숭아가 몇 개 따졌는지 알아보는 함수식):
일수를 변수로 사용
f(1) = 1(남은 복숭아 개수)
f(2) = f( 3) - (약간 먹음) = f(3) -(f(3)/2+1) = f(3)/2-1
....
f(n) = f(n+1 )/2-1 (재귀 공식)
그래서 우리는 재귀 공식을 얻을 수 있습니다:
f(n-1) = f(n)/2-1 => ) = f(n) - 2 => f(n)=2f(n-1) +2 (이것이 우리가 원하는 공식입니다)
그러면 원숭이가 딴 복숭아의 총 개수를 알아낼 수 있습니다. 지금부터 일!
예를 들어 f(10)은 지금부터 10일(10일 전에 원숭이가 먹었던 복숭아의 수)을 의미합니다!
특정 코드는 다음과 같습니다.
package javastudy; import java.util.Scanner; public abstract class Testit2 { // 猴子吃桃问题 public static void main(String[] args) { Scanner in = new Scanner(System.in); int n; n = in.nextInt(); System.out.println(f(n)); in.close(); } static int f(int n) { if (n == 1) //离现在只有一天的时候那就只剩下一个! return 1; return 2 * f(n - 1) + 2; } }
위 내용은 원숭이가 복숭아를 먹는 문제 알고리즘을 Java로 구현한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!