zoukankan      html  css  js  c++  java
  • 分骆驼

    今天看面试宝典,想起来小学的分骆驼问题,我们来回顾下:

    有位老人死后留下了十七只骆驼及一张遗嘱给他的三个儿子。依照遗嘱的划分,老大可以得到一半数量的骆驼,老二则是三分之一,老三则是九分之一。三兄弟为了这问题大伤脑筋,最后没有办法,只好请族长裁断。族长了解情况后,笑眯眯地表示,为了要让兄弟们和睦相处,决定再送他们一只骆驼,以凑成十八只。这样子,老大就得了九只骆驼,老二、老三则分别拿到六只和两只。有趣的是,三兄弟的骆驼加起来还是十七只,多的那一只,仍旧完璧归赵地回到族长手中。

    小时候感觉好神奇啊,借个骆驼就能解决问题!真是吊!但是本身1/2+1/3+1/9就不等于1。意思就是他们老爸分的时候就没当单位1来分。

    而且巧的是用17乘以每个分数的结果换算成小数再四舍五入正好是9,6,2.所以才能分,所以这还不算什么难题。

    试问:他们老爸要是再坑点,给大儿子留5/9或者给老三留1/6,你看怎么分吧!!借多少头也搞不定啊。

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    
    using namespace std;
    
    const int Camel_Num = 17;
    
    void DivCamel(double big, double mid, double litter)
    {
        int res[3] = { 0, 0, 0 };
        while (true && res[0] < Camel_Num && res[1] < Camel_Num && res[2] < Camel_Num)
        {
            if ((double)res[0] / Camel_Num >= big)
            {
                while (true && res[0] < Camel_Num && res[1] < Camel_Num && res[2] < Camel_Num)
                {    
                    if ((double)res[1] / Camel_Num >= mid)
                    {
                        res[2] = (Camel_Num - res[0] - res[1])>=0?Camel_Num - res[0] - res[1]:0;
                        if ((double)res[2] / Camel_Num >= litter)
                        {
                            cout << res[0] << "," << res[1] << "," << res[2] << endl;
                        }
                    }
                    res[1]++;
                }
            }
            res[0]++;
        }
    }
    
    
    int main()
    {
        DivCamel(1.00 / 2.00, 1.00 / 3.00, 1.00 / 9.00);
    
        return 0;
    }

    这个换成1.00/6.00,就木有输出了。(程序写的糟糕,媳妇催着去陪她了)。

  • 相关阅读:
    对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展
    那些年在使用python过程中踩的一些坑。
    java学习心得——Hutool工具类ExcelUtil
    java学习心得——String对象Replace
    java学习心得——Quartz 自定义定时器的操作
    ThoughtWorks.QRCode 生成二维码名片(实现二维码内容换行)
    这么多年第一次自己去用游标和临时表
    BASE64码转图片
    Sql常用函数
    关于EF查询表里的部分字段
  • 原文地址:https://www.cnblogs.com/wyc199288/p/5197714.html
Copyright © 2011-2022 走看看