/*題目:猴子喫桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個
* 第二天早上又將剩下的桃子喫掉一半,又多吃了一個。
* 以後每天早上都吃了前一天剩下 的一半零一個。
* 到第10天早上想再喫時,見只剩下一個桃子了。求第一天共摘了多少。
1.程序分析:採取逆向思維的方法,從後往前推斷。 */
public class Peach1 {
public static void main(String[]args){
int total = 1;
int day = 10;
for(int i = 10;i > 0;i--){
System.out.println("第"+day+"天,有桃子"+total+"顆");
total = (total + 1) * 2;
day--;
}
}
}
方法二:
import java.util.Scanner;
/*題目:猴子喫桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個
* 第二天早上又將剩下的桃子喫掉一半,又多吃了一個。
* 以後每天早上都吃了前一天剩下 的一半零一個。
* 到第10天早上想再喫時,見只剩下一個桃子了。求第n天共還有多少桃子。
1.程序分析:採取逆向思維的方法,從後往前推斷。 */
public class Peach2 {
public static void main(String[]args){
Scanner in = new Scanner(System.in);
int arr[] = new int[11];
int total = 1;
System.out.println("請輸入你要知道第幾天的桃子數:");
int n = in.nextInt();
for(int i = 10;i >= 0;i--){
arr[i] = total;
total = (total + 1) * 2;
}
if(n == 0){
System.out.println("不合邏輯,請重新輸入:");
}else{
System.out.println("第"+n+"天,有桃子"+arr[n]+"顆");
}
}
}