百钱买百鸡问题

百钱买百鸡问题

题目:公元前5世纪末,中国古代数学家张丘建在他的《算经》中提出了著名的 “百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?即一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,雏鸡一钱3只,问一百只鸡中公鸡、母鸡、雏鸡各多少?

三种解法

O(n)

思路:利用高中的参数方程求解

 /**
     * x + y + z = 100
     * 5 * x + 3 * y + z / 3 =100
     * 引用参数t来表示 x、y、z得:
     *
     * x = ( 4 * t - 300 ) / 3 ①
     * y = ( 600 - 7 * t ) / 3 ②
     * z = t ③
     *
     * 有①②得:
     * 4 * t >= 300 ④
     * 600 - 7 * t >= 0 ⑤
     *
     * ④⑤可得
     * 75 =< t

O(n**2)

思路:确定公鸡和母鸡,然后用体中的两个公式代换

public static void way2(){      //O(n**2)
    //公鸡数量:x 母鸡数量:y 雏鸡数量:z
    int x,y,z;
    //公鸡最多买20只
    for (x=0;x

O(n**3)

思路:公鸡母鸡雏鸡都全循环一遍

public static void way3(){      //O(n**3)
        //公鸡数量:x 母鸡数量:y 雏鸡数量:z
        int x, y, z;
        //公鸡最多买20只
        for (x = 0; x < 20; x++) {
            //母鸡最多买33只
            for (y = 0; y < 33; y++) {
                //雏鸡最多买300只
                for (z = 3; z < 300; z = z + 3) {
                    //找到符合这两个公式的x、y、z
                    if ((5 * x + 3 * y + z / 3 == 100) && (x + y + z == 100)) {
                        System.out.println("公鸡数:" + x + "母鸡数" + y + "小鸡数" + z);
                    }
                }
            }
        }
    }

Original: https://www.cnblogs.com/buchizicai/p/15990777.html
Author: 不吃紫菜
Title: 百钱买百鸡问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610303/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Redis6.0.6的三大内存过期策略和八大淘汰策略

    一、前言 Redis在我们日常开发中是经常用到的,Redis也是功能非常强大,可以进行缓存,还会有一些排行榜、点赞、消息队列、购物车等等;当然还有 &#x5206;&amp…

    Java 2023年6月15日
    062
  • kotlin学习一:kotlin简介

    kotlin是JetBrains公司出品的基于JVM的语言,和其他JVM语言一样,目的在于提供比JAVA更加简介的语法, 同时提供函数式编程,不需要再像JAVA一样所有的一切都要依…

    Java 2023年6月16日
    071
  • 线程安全,这词你懂了吗?

    前言 还记得你第一次遇到「 线程安全」这个词的时候吗? 我第一次遇到线程安全这个词是在学习多线程并发操作的时候,看到人家文章里出现这个词,还有说各种线程安全的类,但是一开始并不理解…

    Java 2023年6月10日
    058
  • Nacos服务注册为指定IP和端口

    转至:https://www.jianshu.com/p/64e1f7d50c6e 如果选择固定Ip注册可以配置 spring.cloud.nacos.discovery.ip =…

    Java 2023年6月8日
    086
  • Hexo 搭建个人博客

    Hexo 1、hexo是什么? Hexo是一个快速、简洁且高效的博客框架。可以把用户的markdown文件,按照指定的主题解析成静态网页。 作用:可以快递搭建个人博客。配置着git…

    Java 2023年6月5日
    095
  • private static final long serialVersionUID = 1L 的作用

    1、这句话的意思是定义程序序列化ID 2、什么是序列化? Serializable,Java的一个接口,用来完成java的序列化和反序列化操作的; 任何类型只要实现了Seriali…

    Java 2023年6月5日
    079
  • 发现一个开源项目优化点,点进来就是你的了

    hello,大家好呀,我是小楼。 最近无聊(摸)闲逛(鱼)github时,发现了一个阿里开源项目可以贡献代码的地方。 不是写单测、改代码格式那种,而是比较有挑战的 &#x6…

    Java 2023年6月6日
    086
  • redis 知识点收集 注意理解底层

    学redis,首先要明白其特性,其次要理解明白redis与操作系统底层的关系,这点很重要。这是一个优秀的学习方法,作为计算机专业,应当时刻想着技术和操作系统计算机组成数据结构的联系…

    Java 2023年6月5日
    067
  • 软件工程-就几个方面谈谈做项目和做产品的区别

    从严谨的角度触发,应该基本按照同样的标准实现项目和产品。 很可惜,在实际工作中,这基本上是不太可能的,除非项目比较大,客户要求比较严格。 本文主要谈以下几点: 1、需求差异 2、实…

    Java 2023年6月9日
    097
  • 商城秒杀系统总结(Java)

    本文写的较为零散,对没有基础的同学不太友好。 一、秒杀系统项目总结(基础版) classpath 在.properties中时常需要读取资源,定位文件地址时经常用到 classpa…

    Java 2023年6月7日
    096
  • 上传图像

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月6日
    090
  • 阻塞非阻塞和同步异步的区分 参考一些书籍

    编程中一直对这两个概念不是很理解,在网上搜了很多资料大概描述的其实都很模糊,有时候还自相矛盾,很容易搞混,这里说一下我对这两个概念的理解。首先看一下相关技术书籍对这两个概念的描述,…

    Java 2023年6月6日
    078
  • JavaWeb-MVC、过滤器

    一、MVC架构图 Model 业务处理:业务逻辑(Service) 数据持久层:CRUD(Dao) View 展示数据 提供连接发起Servlet请求(a,form,img&#82…

    Java 2023年6月13日
    0100
  • C++基础-类与对象(2)

    C++-类与对象(2)-继承 继承 一个小引子 有些类之间存在特殊的关系,像下面的图一样: 定义这些类时,下级的成员除了有向上一级类的共性,还有自己的特性,这时,就可以用继承的技术…

    Java 2023年6月5日
    0105
  • HIT软构博客3–javaI/O(FileReader、BufferedReader) 学习在Lab1中使用的java I/O类

    通过 Java I/O API 在 Java 中执行文件处理。 在 Java 中,自动为我们创建了 3 个流。所有这些流都与控制台相连。 1) System.out:标准输出流 2…

    Java 2023年6月5日
    0102
  • Git常用命令总结

    Git常用命令总结 Git日志 git log git log –all 查看所有分支的log git log –all –graph 图形化展…

    Java 2023年6月6日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球