zoukankan      html  css  js  c++  java
  • python_百文买百鸡问题

    百文买百鸡问题

            -- 不定方程

           -- 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,如何买?

           -- 列出方程式

                  x + y + z = 100

                  5x + 3y + z/3 =100

           如何用计算机来算?

      -- 计算机并不会消元法,但是计算机会拼,把数一个个代入进去,然后再计算,满足条件输个结果

      -- 如何逻辑整理?

             全买公鸡最多 20 只

             全买母鸡不可能,必须搭配小鸡买    33只母鸡和 3只小鸡

             全买小鸡可以买300只

           题目要求,鸡的个数正好是100只

      -- 如何程序化?

             -- 先从买1只公鸡开始,然后买1只母鸡,剩下钱全部买小鸡,看满不满足100只鸡,

          不满足的话,那就执行下一步

             -- 先从买1只公鸡开始,然后买2只母鸡,剩下钱全部买小鸡,看满不满足100只鸡

          不满足的话,母鸡数在加1,直到33,但是买了一只公鸡的情况下,

          不可能买到33只母鸡,也不可能买到20只公鸡

             -- 然后公鸡数目加1,再从1只母鸡买起,剩下钱买小鸡,依次循环下去

      会发现一个有趣的问题,公鸡数目加1,母鸡就必须从1加到33,那就说明要用到两层循环,

      还要进行条件判断,判断钱是不是正好加起来等于100文,不就解决了这个问题了

      程序化:

    #!/usr/bin/python3
    
    __author__ = 'beimenchuixue'
    __blog__ = 'http://www.cnblogs.com/2bjiujiu/'
    
    
    for x in range(1, 20):                      # 从1开始买公鸡,不包括20
        for y in range(1, 33):                  # 从1开始买母鸡,不包括33
            z = 100 - x - y                     # 计算剩余要买多少个小鸡,小鸡的个数要满足3的倍数
            if (z%3 == 0) and (5*x + 3*y + z/3 == 100):     # 判断买的计划是否符合条件         
                print('公鸡:%s 母鸡:%s 小鸡:%s'%(x, y, z))
    

      

      

  • 相关阅读:
    Windows 服务程序(一)
    API---注册表编程
    API---文件操作
    main(argc, char *argv[])
    C 自删除技术---批处理方式
    分治法排序
    TDD尝试:nodejs单元测试
    尝试create tech team
    Yum重装走过的坑
    求生欲很强的数据库
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/6684696.html
Copyright © 2011-2022 走看看