C語(yǔ)言百錢買百雞問(wèn)題(詳解版)
我國(guó)古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中曾提出過(guò)著名的“百錢買百雞”問(wèn)題,該問(wèn)題敘述如下:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,則翁、母、雛各幾何?
翻譯過(guò)來(lái),意思是公雞一個(gè)五塊錢,母雞一個(gè)三塊錢,小雞三個(gè)一塊錢,現(xiàn)在要用一百塊錢買一百只雞,問(wèn)公雞、母雞、小雞各多少只?
題目分析
如果用數(shù)學(xué)的方法解決百錢買百雞問(wèn)題,可將該問(wèn)題抽象成方程式組。設(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
如果用解方程的方式解這道題需要進(jìn)行多次猜解,計(jì)算機(jī)的一個(gè)優(yōu)勢(shì)就是計(jì)算速度特別暴力并且無(wú)怨無(wú)悔,所以我們可以欺負(fù)她、蹂躪她!因此我們用窮舉法的方式來(lái)解題,需要 101^3 次猜解,但對(duì)于計(jì)算機(jī)來(lái)說(shuō),小 CASE!
代碼清單:
#include <stdio.h>
int main()
{
int i, j, k;
printf("百元買百雞的問(wèn)題所有可能的解如下:\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;
}</stdio.h>
運(yùn)行結(jié)果:
百元買百雞的問(wèn)題所有可能的解如下:
公雞 0 只,母雞 25 只,小雞 75 只
公雞 4 只,母雞 18 只,小雞 78 只
公雞 8 只,母雞 11 只,小雞 81 只
公雞 12 只,母雞 4 只,小雞 84 只
作者:大學(xué)生新聞網(wǎng) 來(lái)源:大學(xué)生新聞網(wǎng)
發(fā)布時(shí)間:2025-03-11 閱讀:
- C語(yǔ)言求完數(shù)(完全數(shù))
- 如果一個(gè)數(shù)等于它的因子之和,則稱該數(shù)為“完數(shù)”(或“完全數(shù)”)。例如,6的因子為1、2、3,而 6=1+2+3,因此6是“完數(shù)”。
- 03-11 關(guān)注:0
- C語(yǔ)言楊輝三角(兩種方法)
- 楊輝三角是我們從初中就知道的,現(xiàn)在,讓我們用C語(yǔ)言將它在計(jì)算機(jī)上顯示出來(lái)。
- 03-10 關(guān)注:5