#includestdio.h
在成都網(wǎng)站建設(shè)、做網(wǎng)站中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報的無錫營銷推廣。創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站建設(shè)10余年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
void main(){
int cockNum; //定義公雞的數(shù)量,也就是雞翁的數(shù)量
int henNum; //定義母雞的數(shù)量,也就是雞母的數(shù)量
int chickenNum; //定義小雞的數(shù)量,也就是雛雞的數(shù)量
int count = 0; //定義輸出結(jié)果的編號
//公雞100文錢能買100 / 5 = 20只
for (cockNum = 0; cockNum = 20; cockNum++) {
//母雞100文錢 能買100 / 3 = 33只,還多1文
for (henNum = 0; henNum = 33; henNum++) {
//三種雞的只數(shù)總和是100只,故只要確定公雞和母雞的只數(shù),就能確定小雞的只數(shù)
chickenNum = 100 - cockNum - henNum;
//三種雞的總價格是100文,故以此為條件分別輸出所有雞的只數(shù)
if (5 * cockNum + 3 * henNum + chickenNum / 3.0 == 100) {
count++; //輸出結(jié)果的編號自增
printf("%d.公雞的數(shù)量是:%d只,母雞的數(shù)量是:%d只,小雞的數(shù)量是:%d只。\n",count,cockNum,henNum,chickenNum);
}
}
}
}
#includestdio.h
void main()
{
int a,b,c;
for(a=0;a20;a++)????????//公雞可能的只數(shù)
for(b=0;b(100-5*a)/3;b++)????????//母雞可能的只數(shù)
{ ?c=100-a-b;????????????????//總數(shù)為100時,小雞的只數(shù)
?if(c%3==0 a*5+b*3+c/3==100)?????????//若小雞只數(shù)是3的倍數(shù),且總價為100
? ? ? ? ? ? ? printf("a=%d\tb=%d\tc=%d\n",a,b,c);
}
getch();
return 0;
}
用C語言解決百雞問題的步驟如下:
1丶打開網(wǎng)頁C語言編譯環(huán)境,或者自己的安裝的編譯環(huán)境。
2丶設(shè)一百只雞中公雞、母雞、小雞分別為x,y,z;用遍歷所有可能的方法找出符合條件的解,輸入如下圖代碼。
3丶查看運行結(jié)果并分析:有三種可能性。
這樣就解決了用C語言解決百雞問題。
#includestdio.h
int main()
{
int a,b,c;//各種雞的數(shù)目
int i=0; //方程解數(shù)目
printf("百錢買百雞,求雞翁,雞母,雞雛的數(shù)目:\n");
for(a=0;a20;a++) //外層循環(huán)控制公雞
{
for(b=0;b=33;b++) //內(nèi)層循環(huán)控制公雞
{
c=100-a-b; //小雞的只數(shù)
if(c%3==0 a*5+b*3+c/3==100)
{
//驗證取c值的合理性及得到一組解的合理性
printf("%2d:雞翁數(shù):%2d,雞母數(shù):%2d,雞雛數(shù):%2d\n",++i,a,b,c);
}
}
}
}
我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中曾提出過著名的“百錢買百雞”問題,該問題敘述如下:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,則翁、母、雛各幾何?
翻譯過來,意思是公雞一個五塊錢,母雞一個三塊錢,小雞三個一塊錢,現(xiàn)在要用一百塊錢買一百只雞,問公雞、母雞、小雞各多少只?
題目分析
如果用數(shù)學(xué)的方法解決百錢買百雞問題,可將該問題抽象成方程式組。設(shè)公雞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
如果用解方程的方式解這道題需要進行多次猜解,計算機的一個優(yōu)勢就是計算速度特別暴力并且無怨無悔,所以我們可以欺負她、蹂躪她!因此我們用窮舉法的方式來解題,需要101^3次猜解,但對于計算機來說,小CASE!
代碼清單:
#include stdio.hint 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;
}
運行結(jié)果:百元買百雞的問題所有可能的解如下:
公雞 0 只,母雞 25 只,小雞 75 只
公雞 4 只,母雞 18 只,小雞 78 只
公雞 8 只,母雞 11 只,小雞 81 只
公雞 12 只,母雞 4 只,小雞 84 只