重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第十天早上在想吃时,就只剩一个桃子了.求第一天共摘了多少个桃子?
成都创新互联公司成立与2013年,先为鸡东等服务建站,鸡东等地企业,进行企业商务咨询服务。为鸡东企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
public class 猴子吃桃 {
static int total(int day){
if(day == 10){
return 1;
}
else{
return (total(day+1)+1)*2;
}
}
public static void main(String[] args)
{
System.out.println(total(1));
}
}
采取倒推法做:
设第九天剩下n个,应该吃掉 (n/2)+1 则 n-(n/2)-1=1 解得 n=4 第九天剩下4个;
同理设第8天剩下n个,应该吃掉 (n/2)+1 则 n-(n/2)-1=4,解得 n=10 第八天剩下10个
以此类推 第七天剩下 (10+1)x2=22个,第六天剩下 (22+1)x2=46个,第五天剩下(46+1)x2=94个,第四天剩下 (94+1)x2=190个,第三天剩下(190+1)x2=382
第2天剩下 (382+1)x2=766,
第一天有 (766+1)x2=1534个桃子.
import java.util.Scanner;//定义接口
public interface animals {
String monkey = "猴子";
String elephant = "大象";
String peach = "桃子";
String banana = "香蕉";
}
//这是猴子的类
class monkey implements animals{
public void monkeyeat(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要给猴子吃的食物");
String food1 = sc.next();
if(food1.equals(peach)){
System.out.println("你给猴子吃的食物是"+peach+",请选择要给它吃好的还是坏的");
String choose1 = sc.next();
if(choose1.equals("好的")){
System.out.println("猴子吃到了好的"+peach+",猴子笑哈哈");
}else if(choose1.equals("坏的")){
System.out.println("猴子吃到了坏的"+peach+",哭了起来");
}else{
System.out.println("您的输入有误,请输入好的或者坏的");
}
}
else if(food1.equals(banana)){
System.out.println("你给猴子吃的食物是"+banana+",请选择要给它吃好的还是坏的");
String choose2 = sc.next();
if(choose2.equals("好的")){
System.out.println("猴子吃到了好的"+banana+",猴子跳起来");
}else if(choose2.equals("坏的")){
System.out.println("猴子吃到了坏的"+banana+",扔掉"+banana);
}else{
System.out.println("您的输入有误,请输入好的或者坏的");
}
}else{
System.out.println("您输入的食物有误,这里只有"+peach+"和"+banana+"两种食物");
}
}
}
//这是大象的类
class elephant implements animals{
public void elephanteat(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要给大象吃的食物");
String food2 = sc.next();
if(food2.equals(peach)){
System.out.println("你给大象吃的食物是"+peach+",大象不吃桃子");
}else if(food2.equals(banana)){
System.out.println("你给大象吃的食物是"+banana+",请选择要给它吃好的还是坏的");
String choose3 = sc.next();
if(choose3.equals("好的")){
System.out.println("大象吃到了好的"+banana+",大象翘鼻子");
}else if(choose3.equals("坏的")){
System.out.println("大象吃到了坏的"+banana+",吐了出来");
}else{
System.out.println("您的输入有误,请输入好的或者坏的");
}
}else {
System.out.println("您输入的食物有误,这里只有"+peach+"和"+banana+"两种食物");
}
}
}
//测试类
class Test{
public static void main(String []args){
monkey one = new monkey();
one.monkeyeat();
elephant two = new elephant();
two.elephanteat();
}
}
public class Monkey
{
public static void main(String[] args)
{
int sum=0,remain=1;
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
for(int day=9;day=1;day--)
{
sum=(remain+1)*2;
remain=sum;
System.out.println("第"+day+"天还剩"+remain+"个桃子");
}
System.out.println(sum);
}
}
public static void main(String[] args) {
int lastday =1;
int days = 10;//第十天
for(int i = 1;i=days;i++){
lastday=2*(lastday+1);
}
//结果是3070个桃子
System.out.println("一共"+lastday+"个桃子。");
}