java——猴子吃桃问题(多种方法)

package com.zth;
/**
 * 有一棵桃树,有一只猴子,第一天猴子吃了桃子的一半,扔掉一个,第二天又吃了树上一半,扔掉一个,第三天。。。第七天,
 * 还没吃就发现只剩下一个,问树上第一天有多少桃子
 * 
 * @author 时光·漫步
 */
public class Peach {

  public static int fun1 (int day) {
    //int day;
    if(day == 7)
      return 1;
    else {
      return 2*fun1(day +1)+2;
    }
  }
  
  public static  int fun2(int day) {
    int x = 1;      // 初始化为第 7 天的桃子数
    int y;          // 记录前一天的桃子数
    int i= 6;       // 当前天数
    while(i>=day) {
      y = 2* (x+1);
      x = y;
      i--;
    }
    return x;
  }
  
  public static int fun3(int day) {
    int x = 1;      // 初始化为第 7 天的桃子数
    int y;          // 记录前一天的桃子数
    int i= 6;       // 当前天数
    for(;i>=day;i--) {
      y = 2* (x+1);
      x = y;
    }
    return x;
  }
  
  
  public static void main(String[] args) {
   
    System.out.println(fun1(1));
    System.out.println(fun2(1));
    System.out.println(fun3(1));
  }

}

执行结果:

190
190
190

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值