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);
}
}