[Java] java 猴子分桃子问题 →→→→→进入此内容的聊天室

来自 , 2020-04-03, 写在 Java, 查看 129 次.
URL http://www.code666.cn/view/b7bb35b9
  1. /**
  2.  * 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,
  3.  * 又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
  4.  */
  5. public class Dg {
  6.         static int ts = 0;// 桃子总数
  7.         int fs = 1;// 记录分的次数
  8.         static int hs = 5;// 猴子数...
  9.         int tsscope = 5000;// 桃子数的取值范围.太大容易溢出.
  10.  
  11.         public int fT(int t) {
  12.                 if (t == tsscope) {
  13.                         // 当桃子数到了最大的取值范围时取消递归
  14.                         System.out.println("结束");
  15.                         return 0;
  16.                 } else {
  17.                         if ((t - 1) % hs == 0 && fs <= hs) {
  18.                                 if (fs == hs) {
  19.                                         System.out.println("桃子数 = " + ts + " 时满足分桃条件");
  20.                                 }
  21.                                 fs += 1;
  22.                                 return fT((t - 1) / 5 * 4);// 返回猴子拿走一份后的剩下的总数
  23.                         } else {
  24.                                 // 没满足条件
  25.                                 fs = 1;// 分的次数重置为1
  26.                                 return fT(ts += 1);// 桃子数加+1
  27.                         }
  28.                 }
  29.         }
  30.  
  31.         public static void main(String[] args) {
  32.                 new Dg().fT(0);
  33.         }
  34. }
  35.  

回复 "java 猴子分桃子问题"

这儿你可以回复上面这条便签

captcha