3. 百钱买白鸡问题

这是一个古老而非常经典的问题,最早源自中国古代的算经,中国古代数学家张丘建在他的算经中提出了著名的百钱买白鸡的问题:

鸡翁1, 值钱5,鸡母1,值钱3,鸡雏3值钱1,百钱买白鸡,问翁,母,雏各几何?

100文钱买100只鸡,公鸡5文钱一只,母鸡3文一只,小鸡3只1文钱;100文钱买了100只鸡,请问公鸡,母鸡,小鸡各有多少?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,k;

    for(i=0; i<= 20; i++) {
        for(j=0; j< 34; j++) {
            k = 100 - i- j;
            if (k%3 == 0 && (i*5 + j*3 + k/3 == 100)){
                printf("公鸡:%d 母鸡:%d 小鸡: %d \n", i, j,k);
            }

        }
    }
    return 0;
}
时间: 2024-10-11 07:04:09

3. 百钱买白鸡问题的相关文章

算法-百钱买白鸡

百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 分析:估计现在小学生都能手工推算这套题,只不过我们用计算机来推算,我们可以设公鸡为x,母鸡为y,小鸡为z,那么我们可以得出如下的不定方程 x+y+z=100, 5x+3y+z/3=100, 下面再看看x,y,z的取值范围,由于只有100文钱,则5x<100 => 0<x&l

【python入门到放弃】百钱买白鸡

# 问题:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱? ''' 公鸡 < 20 母鸡 < 33 小鸡 < 300 ''' for cock in range(1,20): for hen in range(1,33): for chick in range(1,300): sum = cock + hen + chick pay = cock*5 + hen*3 + chick/

百钱买白鸡

//100文钱最多可以买100/5=20只公鸡 //100文钱最多可以买100/3 取整为33只母鸡 //100文钱最多金额义卖买100*3=300只雏鸡 最多100只 取最多100只雏鸡 //也可以直接全部取最多100只 for (int i = 0; i <=20; i++) { for (int j = 0; j <= 33; j++) { for (int k = 0; k <=100; k++) { if((i+j+k)==100) { if(5*i+3*j+k/3==100)

python-百钱买白鸡

经典题目:有100文钱,要买100只鸡,公鸡5文一只,母鸡3文一只,小鸡三只一文,问公鸡母鸡小鸡各多少只? #/usr/bin/python #-*-encoding:utf-8-*- # x + y + z = 100 # 5x + 3y + z/3 = 100 for x in range(1, 20): for y in range(1, 33): z = 100 - y - x if z % 3 == 0 and 5 * x + 3 * y + z / 3 == 100: print '

百钱买百鸡

public class Sample1//百钱买百鸡/*鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?*/{ public static void main(String [] args){ int x;//可买鸡翁只数 int y;//可买鸡母只数 int z;//可买鸡雏只数 for ( x=0;x<=100/5 ;x++ ) { for ( y=0;y<=33 ;y++ ) { z=100-x-y; if (x*5+y*3+z/3==100&am

华为OJ平台——百钱买百鸡问题

题目描述: 元前五世纪,我国古代数学家张丘建在<算经>一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一. 百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 思路: 这道题很简单,假设鸡翁 i 只, 鸡母 j 只, 则有 i + j + k = 100 5*i + 3*j + k/3 = 100 由以上两个等式我们可以推出: j = 25 - i * 7/4 ; k = 75 + i * 3/4 ; 由于i. j. k 必须是0或正整数,所以 i 必须是4的倍数,因此我们下面的程序中也是

百钱买百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,问100元买100只鸡,问有多少种买法,输出每种买法的结果!

/** * 百钱买百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,问100元买100只鸡,问有多少种买法,输出每种买法的结果! * */ public class Test3 { public static void main(String[] args) { int c = 0; for (int a = 0; a < 100; a++) { for (int b = 0; b < 100; b++) { if ((7 * a + 4 * b) == 100) { c++; System.o

0002_百钱买鸡

百钱买鸡:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱? 思路:设定公鸡,母鸡,小鸡各买x,y,z只,则满足下列条件: x+y+z=100; 5x+3y+z/3=100: 1 __author__ = 'qq593' 2 # /usr/bin/python 3 # -*- coding:utf-8 -*- 4 5 #x is the unknown number 6 for y in ra

PHP中百钱买百鸡

<html><head><title>百钱买百鸡</title><meta http-equiv="content-type" content="text/html;charset=utf-8"/></head><?php/*题目:公鸡一,值钱五,母鸡一,值钱三,小鸡三,值钱一.百钱买百鸡,问公鸡.母鸡.小鸡各几何?*///$g;可买公鸡数//$m;可买母鸡数//$x;可买小鸡数$coun