c语言百鸡问题
① c语言问题 百元买百鸡问题
#include <stdio.h>
void main()
{
int mj,gj,xj,n=0;
printf(" 百元买百鸡问题求解方案专\n") ;
printf(" ----------------------\n") ;
printf("\t母鸡\t公鸡属\t小鸡\n") ;
for(mj=0;mj<=100;mj++)
for(gj=0;gj<=100;gj++)
{
xj=100-mj-gj;
if(xj*0.5+mj*3+gj*2==100)//1
{
n++;///2
printf("方案%d:\t%d\t%d\t%d\n",n,mj,gj,xj);
}
}
}
② C语言(百钱买百鸡的问题)
百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
*题目分析与算法设计设鸡翁、鸡母、鸡雏的个数分别为cocks(x),hens(y),chicks(z),题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然cocks的值在0~20之间;
同理,hens的取值范围在0~33之间,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此问题可归结为求这个不定方程的整数解。由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。
程序解释
main()
{
int cocks=0,hens,chicks;
while (cocks<=19) //公鸡只数小于19
{hens=0;
while(hens<=33) //母鸡小于33只
{chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
cocks++;
}
}
*总是的进一步讨论这类求解不定方程总理的实现,各层循环的控制变量直接与方程未知数有关,且采用对未知数的取值范上穷举和组合的方法来复盖可能得到的全部各组解。能否根据题意更合理的设置循环控制条件来减少这种穷举和组合的次数,提高程序的执行效率,请读者考虑
③ 百鸡问题怎么用C语言求解
用C语言解决百鸡问题的步骤如下:
1丶打开网页C语言编译环境,或者自己的安装的回编译环境。答
这样就解决了用C语言解决百鸡问题。
④ 百鸡问题C语言
代码编的根本不对,编译后钱数相加大于一百
这是我修改后的代码:#include
"stdio.h"
void
main()
{
int
x,y,z;
for(z=3;z<100;z+=3)
{
for(y=1;y<100;y++)
{
for(x=1;x<100;x++)
{
if(x*5+y*3+z/3==100)
{
printf("公鸡内有容%d只\n母鸡有%d只\n小鸡有%d只\n",x,y,z);
printf("\n");
}
}
}
}
}
⑤ c语言百鸡问题while
用穷尽法计算结果
#include
void main()
{
int i,j,k; //用i,j,k分别表示公鸡、母鸡和小鸡的个数
for ( i=0;i<100/5;i++ ) //公鸡最少0只,回最多答100/5=20只
for ( j=0;j<100/3;j++ ) //母鸡最少0只,最多100/3=33只
for ( k=0;k<100*3;k++ ) //小鸡最少0只,最多100*3只
if ( i*5+j*3+k/3==100 ) //排列中如果凑成100元则输出结果
printf("鸡翁%d,鸡母%d,鸡雏%d\n",i,j,k);
}
⑥ c语言百鸡问题
/*******************************************************************************
*百钱买百鸡问题
*问题:公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:
* 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
* 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
********************************************************************************/
#include "stdio.h"
#include "conio.h"
int main()
{
int male;
int female;
int baby;
for(male=0;male<100/5;male++)
for(female=0;female<100/3;female++)
for(baby=0;baby<100;baby+=3)
{
if(male+female+baby == 100 && 5*male+3*female+baby/3 == 100)
printf(" cock hen baby\n %d %d %d",male,female,baby)
}
printf("Hello, world\n");
getch();
}
⑦ C语言百元百鸡问题
穷尽法是利用计算机计算迅速的"笨"办法得到结果,利用多重循环版,只要列出x,y,z的所有权可能性设置循环起止值即可
公鸡x取值范围: 0只~100元/2元只
母鸡y取值范围: 0~100/3
小鸡z取值范围: 0~200只(2只2只地买,省得多出0.5元钱不好算整数100元)
#include<stdio.h>
void main() { int x,y,z;
for ( x=0;x<=100/2;x++ )
for ( y=0;y<=100/3;y++ )
for ( z=0;z<=200;z+=2 )
if ( x+y+z==100 ) if ( x*2+y*3+z/2==100 ) printf("%d %d %d\n",x,y,z);
}
⑧ C语言百钱百鸡问题
#include<stdio.h>
void main()
{
int a,b,c;
a=0;
while (a<=19);//此句分号去掉
{
b=0;
while (b<=33);//此句分号去掉
{
c=0;
while (c<=100);//此句分号去掉
{
if((5*a+3*b+c/3==100)&&(a+b+c==100));//此句分号去掉
printf("公鸡专属=%d 母鸡=%d 小鸡=%d\n",a,b,c);
c=c+3;
}
b++;
}
a++;
}
}
⑨ C语言编程,百鸡问题
因为小鸡的数目没有变化。小鸡除了一开始初始化以后就没赋过值,当然不行。
⑩ 求C语言 百鸡问题的解
我想说的是 我这种方法循环最简单 且语句正确 没有多解现象 格式美观
#include <stdio.h>
void main()
{ int a,b,c;
printf("鸡翁\t鸡母\t鸡雏版\n"); //外层循环控制鸡翁数权a在0~20变化
for(a=0;a<20;a++) //内层循环控制鸡母数b在0~33变化
for(b=0;b<=33;b++)
{ c=100-a-b;
if(5*a+3*b+1*c/3 == 100&& 5*a+3*b+c/3== 100) //内外层循环控制下,鸡雏数c的值受a,b的值的制约,且后句防止了整行变量而导致的错解
printf("%d\t%d\t%d\n",a,b,c);
}
}