o(∩_∩)o... 求助“百钱买百鸡”的问题----其他的解法
百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
*题目分析与算法设计
设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在0~20之间;同理,y的取值范围在0~33之间,可得到下面的不定方程:
5x+3y+z/3=100
x+y+z=100
方法一;
#include<iostream.h>
void main()
{
int x,y,z;
for(x=0;x<=20;x++) //外层循环控制鸡翁数
for(y=0;y<=34;y++) //内层循环控制鸡母数y在0~33变化
{
z=100-x-y; //内外层循环控制下,鸡雏数z的值受x,y的值的制约
if(z%3==0&&5*x+3*y+z/3==100)
cout<<"cock="<<x<<"\t"<<"hen="<<y<<"\t"<<"chicken="<<z<<endl;
}
}
// cock=0 hen=25 chicken=75
// cock=4 hen=18 chicken=78
// cock=8 hen=11 chicken=81
// cock=12 hen=4 chicken=84
//-------------------------------------------------------------------------
方法二:
#include<iostream.h>
void main()
{
int x,y,z;
for(x=0;x<=20;x++) //外层循环控制鸡翁数
for(y=0;y<=34;y++) //内层循环控制鸡母数y在0~33变化
for(z=0;z<=100;z++)
if(x+y+z==100&&5*x+3*y+z/3==100)
cout<<"cock="<<x<<"\t"<<"hen="<<y<<"\t"<<"chicken="<<z<<endl;
}
//cock=0 hen=25 chicken=75
//cock=3 hen=20 chicken=77 浪费了2只小鸡
//cock=4 hen=18 chicken=78
//cock=7 hen=13 chicken=80 浪费了2只小鸡
//cock=8 hen=11 chicken=81
//cock=11 hen=6 chicken=83 浪费了2只小鸡
//cock=12 hen=4 chicken=84
//**************************************************************
o(∩_∩)o.........o(∩_∩)o...不知道还有没有其他的解法呢???????