陕西省教师资格证领取:数学"百鸡问题" 的 c++ 代码

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 02:37:35
数学"百鸡问题" 的 c++ 代码~~~~~~~~~~
#include<iostream.h>
#include<conio.h>
int main()
{
int x,y,z,j=0; /*x为鸡翁 y为鸡母 z为鸡雏*/
clrscr();
cout<<"Follwing are possible plans to buy 100 fowls with 100 Yuan.\n\n"<<endl;
for(x=0;x<=20;x++) /*外层循环控制鸡翁数*/
{
for(y=0;y<=33;y++) /*内层循环控制鸡母数y在0~33变化*/
{
z=100-x-y; /*内外层循环控制下,鸡雏数z的值受x,y的值的制约*/
if(z%3==0&&5*x+3*y+z/3==100) /*验证取z值的合理性及得到一组解的合理性*/
{
cout<< ++j << ": " <<" cock= " << x << " hen= " << y << " chicken= " << z << " \n\n" << endl;
}
}
}
return 0;
}

Turbo C++写的,行不行?

以上都是C代码, 我给一个函数
我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

//GetChick: 得到鸡翁、鸡母、鸡雏的数量
//输入参数: cocks:鸡翁数
// hens: 鸡母数
// chicks: 鸡雏数
//以上三个参数是输入值也是返回值.
void GetChick(int* cocks,int* hens, int* chicks)
{
*cocks=0;
while(*cocks<=19)
{
*hens=0;
while(*hens<=33)
{
*chicks=100-*cocks-*hens
if(5* (*cocks)+3* (*hens)+(*chicks)/3==100&& (*chicks)%3==0){
*hens= *hens+1;
}
*cocks=*cocks+1;
}

}

调用方法:
int cocks,hens,chicks;
GetChick(&cocks,&hens,&chicks) ;

用穷举很方便,代码不长,你可以自己先试着写
写。

int a,b,c;//a为公鸡,b为母鸡,c为小鸡
for (a=1;i<20;i++)
for(b=1;b<33;b++)
for(c=1;c<300;c++)
if(a+b+c==100 && 5a+3b+100\3*c==100)
printf("%d,%d,%d",a,b,c);