/*题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

本文通过两种Java程序实现方式解决了经典的猴子吃桃问题。一种适用于固定天数的问题求解,另一种则可以灵活输入想要查询的天数。文章采用逆向思维,从最后一天开始向前推算,逐步揭示猴子第一天摘取桃子的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 
 *   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
 *   以后每天早上都吃了前一天剩下   的一半零一个。
 *   到第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]+"颗");
			
		}
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值