学习一下

89 阅读1分钟

为节省彼此时间,请先做下这道题,告诉我答案,再确定是否安排面试。
花1块钱能买到3个桃,把桃肉吃掉,剩下核,每凑到3个核,可以再找卖桃的换到1个桃,现在请问,花50元最多能吃到多少个桃?花5000000000000元呢?花1234567897531元呢?(注:卖桃的不接受赊账),请不要用编程计算。

class h {
taozi=0
  constructor(money) {
    this.taozi = money * 3;
  }
  getHowMany() {
    return this.tao(this.taozi);
  }
  tao(num, yk = 0) {
    //yk 是上次吃完不够换的壳子,留着下次一起加上换
    let z = 0;
    let all = num + yk;
    //这回的吃过的果壳+上回余下的果壳大于3时
    if (all >= 3) {
      //加上上次没换的壳子一起换果子
      z = Math.floor(all / 3);
      let m = all % 3;

      return num + this.tao(z, m);
    } else {
      return num;
    }
  }
}