zoukankan      html  css  js  c++  java
  • 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语言自学网  ;希望可以帮到爱学习的你!!分享也是一种快乐!!!请接力。。。

    点击查看原文,谢谢!

  • 相关阅读:
    《C# to IL》第一章 IL入门
    multiple users to one ec2 instance setup
    Route53 health check与 Cloudwatch alarm 没法绑定
    rsync aws ec2 pem
    通过jvm 查看死锁
    wait, notify 使用清晰讲解
    for aws associate exam
    docker 容器不能联网
    本地运行aws lambda credential 配置 (missing credential config error)
    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
  • 原文地址:https://www.cnblogs.com/kangyifan/p/13506075.html
Copyright © 2011-2022 走看看