• 编程每日一练(多语言实现)基础篇:百元买百鸡


    一、实例描述

    中国古代数学家张丘建在他的 《算经》 中提出了一个著名的 "百钱买百鸡问题" 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一(这里要看清楚哟), 百钱买百鸡,问翁、母、雏各几何?运行结果如下图所示:
    在这里插入图片描述

    二、技术要点

    根据题意设公鸡、母鸡和雏鸡分别为 cock/i,hen/j,chick/k,如果100元全买公鸡那么最多能买20只,所以 cock 的范围是 0<=cock<=20,如果全买母鸡那么最多能买33只,所以 hen 的范围是 0<=hen<=33,如果100元钱全买小鸡那么根据题意最多能买99只(根据题意小鸡的数量应小于100且是3的倍数)。在确定了各种鸡的范围后进行穷举并判断,判断的条件有以下3点:

    ①: 所买的三种鸡的钱数总和为100
    ②: 所买的三种鸡的数量之和为100
    ③: 所买的小鸡数必须是3的倍数
    
    • 1
    • 2
    • 3

    三、代码实现

    3.1 C 语言实现

    /*================================================================
    *   Copyright (C) 2023 AmoXiang All rights reserved.
    *   
    *   文件名称:03-百元买百鸡.c
    *   创 建 者:AmoXiang
    *   创建日期:2023年09月28日 15:16:38
    *   描    述:
    *
    ================================================================*/
    
    
    #include 
    int main(){
        int cock=0,hen=0,chick=0;
        for(cock=0;cock<=20;cock++){
            for(hen=0;hen<=33;hen++){
                for(chick=3;chick<=99;chick++){
                    if(chick%3==0&&cock*5+hen*3+chick/3==100&&cock+hen+chick==100){
                            printf("公鸡:%d\t母鸡:%d\t小鸡:%d\n",cock,hen,chick);
                    }
                }
            }       
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    程序运行结果如下图所示:
    在这里插入图片描述

    3.2 Python 语言实现

    # -*- coding: utf-8 -*-
    # @Time    : 2023/9/28 14:26
    # @Author  : AmoXiang
    # @File    : 03-百元买百鸡.py
    # @Software: PyCharm
    # @Blog    : https://blog.csdn.net/xw1680
    
    for i in range(21):  # 公鸡范围在0到20之间
        for j in range(34):  # 母鸡范围在0到33之间
            for k in range(3, 100):  # 小鸡范围在3到99之间
                # ①:判断钱数是否等于100 ②:判断购买的鸡数是否等于100 ③:判断小鸡数是否能被3整除
                if 5 * i + 3 * j + k // 3 == 100 and (i + j + k) == 100 and k % 3 == 0:
                    print(f'公鸡:{i}\t母鸡:{j}\t小鸡:{k}')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    程序运行结果如下图所示:
    在这里插入图片描述

    3.3 Java 语言实现

    /**
     * ClassName: Exercise3
     * Package: PACKAGE_NAME
     * Description:
     *
     * @Author AmoXiang
     * @Create 2023/9/28 15:00
     * @Version 1.0
     */
    public class Exercise3 {
        public static void main(String[] args) {
    //        cock、hen和chick
    //        int cock = 0, hen = 0, chick = 0;
            for (int i = 0; i <= 20; i++) {//公鸡范围在0到20之间
                for (int j = 0; j <= 33; j++) {// 母鸡范围在0到33之间
                    for (int k = 3; k <= 99; k++) {//小鸡范围在3到99之间
                        // ①:判断钱数是否等于100 ②:判断购买的鸡数是否等于100 ③:判断小鸡数是否能被3整除
                        if (i + j + k == 100 && k % 3 == 0 && (5 * i + 3 * j + k / 3) == 100) {
                            System.out.println("公鸡:" + i + "\t母鸡:" + j + "\t小鸡:" + k);
                        }
                    }
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    程序运行结果如下图所示:
    在这里插入图片描述

    3.4 JavaScript 语言实现

    let cock = hen = chick = 0; // 定义变量为基本整型
    for (let cock = 0; cock <= 20; cock++) { // 公鸡范围在0到20之间
        for (let hen = 0; hen <= 33; hen++) {//母鸡范围在0到33之间
            for (let chick = 3; chick <= 99; chick++) {//小鸡范围在3到99之间
                // ①:判断钱数是否等于100 ②:判断购买的鸡数是否等于100 ③:判断小鸡数是否能被3整除
                if (cock + hen + chick == 100 && 5 * cock + 3 * hen + chick / 3 == 100 && chick % 3 == 0) {
                    console.log(`公鸡${cock}\t母鸡${hen}\t小鸡${chick}`)
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    程序运行结果如下图所示:
    在这里插入图片描述
    至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习编程的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


    在这里插入图片描述

        好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
        如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
     编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

  • 相关阅读:
    企业微信vs个人微信:对比对照一览表
    谷歌浏览器网页显示不完整解决方法
    不同系统下的文件层级符号小结
    交通 | python网络爬虫:“多线程并行 + 多线程异步协程
    msyql事务ACID特性及其实现原理
    除了「加机器」,其实你的微服务还能这样优化
    深入理解关键字 一(auto,register,static,sizeof)
    树/二叉树/森林之间的相互转换 与遍历
    最后一个单词的长度[简单]
    4G版本云音响设置教程阿里云平台版本
  • 原文地址:https://blog.csdn.net/xw1680/article/details/133384318