zoukankan      html  css  js  c++  java
  • 海滩上有一堆桃子,五只猴子来分。 第一只猴子把这堆桃子平均分为五份,多了一个, 这只猴子把多的一个扔入海中,拿走了一份。 * 第二只猴子把剩下的桃子又平均分成五份,又多了一个, 它同样把多的一个扔入海中,拿走了一份, 第三、第四、第五只猴子都是这样做的, * 问海滩上原来最少有多少个桃子?

    题目:海滩上有一堆桃子,五只猴子来分。 第一只猴子把这堆桃子平均分为五份,多了一个, 这只猴子把多的一个扔入海中,拿走了一份。
    * 第二只猴子把剩下的桃子又平均分成五份,又多了一个, 它同样把多的一个扔入海中,拿走了一份, 第三、第四、第五只猴子都是这样做的,
    * 问海滩上原来最少有多少个桃子?

    思路1: 逆序 原来 第1只 第2只 第3只 第4只 第5只 n n-n/5-1 m-m/5-1 x-x/5-1 使用递归来解决问题

    public class 第四十一题猴子分桃子 {
        public static void main(String[] args) {
            /*
             * 思路: 逆序 原来 第1只 第2只 第3只 第4只 第5只 n n-n/5-1 m-m/5-1 x-x/5-1 使用递归来解决问题
             */
            int sum = 0;
            for (int i = 60; i < 6100; i++) {
                int n = i;
                for (int m = 1; m < 6; m++) {
                    sum += getValue(n, m);
                }
                if (sum == n) {
                    System.out.println(i);
                }
            }
        }
    
        // 获取第m只猴子拿走的桃数量
        public static double getValue(int d, int m) {// n为总数,m为第1,2,3,4,5只猴
            int result = 0; // 保存结果
             result =  d / 5 + 1; // 第一只
            if (m == 1) {
                return result;
            } else {
                return getValue((d - result), m - 1);
            }
        }
    }

    思路2: 

    设第5只猴子得到a个桃子.分队前有5a+1 第四只得到 (5a+1)/4 分堆前有 (5a+1)/4 + 1 .我想知道为什么 第四子猴子得到
    * (5a+1)/4 为什么不是 (5a+1)/5 为什么第四子得到的不是 5a+1
    *
    * 设第四只猴子拿【暂不说 得】到y个苹果,那么还剩下(除了扔掉的一个)4y个!而 4y=5a+1 所以 y=(5a+1)/4 .即第4只猴子得到
    * (5a+1)/4 个苹果.

    public class 第四十一题猴子分桃子_version2 {
        public static void main(String[] args) {
            // 统计次数
            int count, m, j = 0;
            for (int i = 4; i < 10000; i += 4) {
                count = 0;
                m = i;
                for (int k = 0; k < 5; k++) {
                    j = i / 4 * 5 + 1;
                    i = j;
                    if (j % 4 == 0) {
                        count++;
                    } else 
                        break;
                }
                i = m;
                if (count == 4) {
                    System.out.println("原有桃子" + j + "个");
                }
            }
        }
    }
  • 相关阅读:
    洛谷 P1219 八皇后【经典DFS,温习搜索】
    洛谷 P1972 [SDOI2009]HH的项链【莫队算法学习】
    hihoCoder #1015 : KMP算法【KMP裸题,板子】
    UVa 10341
    UVa 11461
    Uva
    BZOJ 3097: Hash Killer I【构造题,思维题】
    BZOJ 1207: [HNOI2004]打鼹鼠【妥妥的n^2爆搜,dp】
    BZOJ 1800: [Ahoi2009]fly 飞行棋【思维题,n^4大暴力】
    新版百度指数2013-12-23正式上线
  • 原文地址:https://www.cnblogs.com/zjulanjian/p/10952744.html
Copyright © 2011-2022 走看看