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

猜你喜欢

转载自blog.csdn.net/qq_41573234/article/details/83097812
今日推荐