百雞問題c語言
//按你思路改的。
#include <stdio.h>
void main()
{
int cocks,hens,chicks,n=0;
while(n<=33)
{ //改過!改過!改過!改過!改過!改過!
chicks=3*n;
hens=0;
while(hens<=33)
{
cocks=100-hens-chicks;
if(5*cocks+3*hens+n==100&&cocks>=0) //改過!改過!改過!改過!改過!改過!
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
n++;
}
}
Ⅱ 百雞問題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語言的百錢百雞問題。
第一處:因為輸出函數的格式控制符是%s,這個的意思是輸出一個字元串,所以後面對應的三個參數應該是字元串,字元串是要加「」,所以後面三個參數都有「」
第二處:外層循環是窮舉公雞的個數,內層窮舉母雞的,因為公雞母雞都窮舉了,所以小雞只要用100去減他們就行了,內層裡面的hens++;是改變循環變數的值,也就是窮舉母雞的個數,將母雞從一隻開始窮舉,一直到33隻為止
第三處:因為當公雞取一隻的時候,母雞可取的可能性是1-33隻,當公雞取2隻時,母雞取的可能性也是1-33,所以跳出內層循環時,母雞的值又要從1開始,因此該句hens=1;是把母雞的值歸1
第四處:也是同第二處,改變外層循環變數的值,也就是改變公雞的個數,將公雞從第一隻開始舉例,一直到20隻為止
Ⅳ 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語言(百錢買百雞的問題)
百錢百雞問題中國古代數學家張丘建在他的《算經》中提出了著名的「百錢買百雞問題」:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?
*題目分析與演算法設計設雞翁、雞母、雞雛的個數分別為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語言的百錢買百雞問題。
我國古代數學家張丘建在《算經》一書中曾提出過著名的「百錢買百雞」問題,該問題敘述如下:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,則翁、母、雛各幾何?
翻譯過來,意思是公雞一個五塊錢,母雞一個三塊錢,小雞三個一塊錢,現在要用一百塊錢買一百隻雞,問公雞、母雞、小雞各多少只?
題目分析
如果用數學的方法解決百錢買百雞問題,可將該問題抽象成方程式組。設公雞x只,母雞y只,小雞z只,得到以下方程式組:
A:5x+3y+1/3z = 100
B:x+y+z = 100
C:0 <= x <= 100
D:0 <= y <= 100
E:0 <= z <= 100
如果用解方程的方式解這道題需要進行多次猜解,計算機的一個優勢就是計算速度特別暴力並且無怨無悔,所以我們可以欺負她、蹂躪她!因此我們用窮舉法的方式來解題,需要101^3次猜解,但對於計算機來說,小CASE!
代碼清單:
#include <stdio.h>int main()
{ int i, j, k;
printf("百元買百雞的問題所有可能的解如下:\n");
for( i=0; i <= 100; i++ )
for( j=0; j <= 100; j++ )
for( k=0; k <= 100; k++ )
{
if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 )
{
printf("公雞 %2d 只,母雞 %2d 只,小雞 %2d 只\n", i, j, k);
}
}
return 0;
}
運行結果:百元買百雞的問題所有可能的解如下:
公雞 0 只,母雞 25 只,小雞 75 只
公雞 4 只,母雞 18 只,小雞 78 只
公雞 8 只,母雞 11 只,小雞 81 只
公雞 12 只,母雞 4 只,小雞 84 只
Ⅶ 百雞問題 c語言
#include
<stdio.h>
#include
<stdlib.h>
#include<stdio.h>
int
main()
{
int
x,y,z;
printf("百雞問題解:\n");
for(x=0;x<=100;x++)
{
for(y=0;y<=100;y++)
{
if(7*x+4*y==100)
{z=100-x-y;
printf("\tx=%3d
y=%3d
z=%3d\n",x,y,z);
}
}
}
printf("\n");
return
0;
}
應該是這樣,你多寫了個循環。
Ⅷ 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語言編寫程序解決百錢白雞問題
按照題目要求編寫的解決百錢買百雞問題的C語言程序如下
#include<stdio.h>
intmain()
{
inta,b,c;
for(a=0;a<=20;a++)
for(b=0;b<=33;b++)
{
c=100-a-b;
if(c%3==0&&5*a+3*b+c/3==100)
printf("雞翁%d只,雞母%d只,雞雛%d只 ",a,b,c);
}
return0;
}
Ⅹ 百雞問題怎麼用C語言求解
用C語言解決百雞問題的步驟如下:
1丶打開網頁C語言編譯環境,或者自己的安裝的編譯環境。
這樣就解決了用C語言解決百雞問題。