• 11. C语言百钱买百鸡问题(详解版)


    我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?

    翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

    题目分析

    如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。设公鸡 x 只,母鸡 y 只,小鸡 z 只,得到以下方程式组:
    A:5x+3y+1/3z = 100
    B:x+y+z = 100
    C:0 <= x <= 100
    D:0 <= y <= 100
    E:0 <= z <= 100

    如果用解方程的方式解这道题需要进行多次猜解,计算机的一个优势就是计算速度特别暴力并且无怨无悔,所以我们可以欺负她、蹂躏她!因此我们用穷举法的方式来解题,需要 101^3 次猜解,但对于计算机来说,小 CASE!

    代码实例:

     1 #include <stdio.h>
     2  
     3 int main()
     4 {
     5     int i, j, k;
     6  
     7     printf("百元买百鸡的问题所有可能的解如下:
    ");
     8  
     9     for( i=0; i <= 100; i++ )
    10         for( j=0; j <= 100; j++ )
    11             for( k=0; k <= 100; k++ )
    12             {
    13                 if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 )
    14                 {
    15                     printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只
    ", i, j, k);
    16                 }
    17             }
    18  
    19     return 0;
    20 }

    运行结果:

    百元买百鸡的问题所有可能的解如下:
    公鸡  0 只,母鸡 25 只,小鸡 75 只
    公鸡  4 只,母鸡 18 只,小鸡 78 只
    公鸡  8 只,母鸡 11 只,小鸡 81 只
    公鸡 12 只,母鸡  4 只,小鸡 84

    感谢你的阅读,请用心感悟!更多内容请关注微信公众号:C语言自学网  ;希望可以帮到爱学习的你!!分享也是一种快乐!!!请接力。。。

    点击查看原文,谢谢!

  • 相关阅读:
    git刚初始化项目的操作
    git在不同平台windows、linux、mac 上换行符的问题
    HTTP请求报文和HTTP响应报文
    记一次挂马清除经历:处理一个利用thinkphp5远程代码执行漏洞挖矿的木马
    Shell 一键安装命令
    Linux下ThinkPHP网站目录权限设置
    Linux fdisk普通分区扩容
    cachecloud安装部署
    python
    【转】【Python】Python网络编程
  • 原文地址:https://www.cnblogs.com/kangyifan/p/13506075.html
Copyright © 2020-2023  润新知