vb中如何算百元買百雞問題詳解

時間 2021-07-19 18:44:49

1樓:匿名使用者

百元買百雞問題:

一百個銅錢買了一百隻雞,其中公雞乙隻5錢、母雞乙隻3錢,小雞一錢3只,問一百隻雞中公雞、母雞、小雞各多少)。

這是乙個古典數學問題,設一百隻雞中公雞、母雞、小雞分別為x,y,z,問題化為三元一次方程組:

這本來是數學問題,現在用編寫程式的方法解決就變得相對簡單。

通常採用列舉演算法來實現:

所謂列舉演算法,就是一一枚舉,逐個檢驗:

關於列舉演算法,可以看看我的文章:

現在用列舉演算法來解決本題:

假設:公雞x只,母雞y只,小雞z只,

不難知道:

x 不會超過20

y 不會超過33

z 不會超過300

並且有關係式:(注意,這兩個關係式必須同時成立,才是問題的解)

x + y + z = 100

5x + 3y + z/3 = 100

採用列舉演算法的程式結構,往往就是迴圈裡邊巢狀選擇;

迴圈 -- 實現 一一枚舉,

選擇 -- 實現 逐個檢驗。

程式如下:

option explicit

private sub command1_click()

dim x as integer

dim y as integer

dim z as integer

for x = 1 to 20

for y = 1 to 33

for z = 1 to 300

if x + y + z = 100 and 5 * x + 3 * y + z / 3 = 100 then

print x, y, z

end if

next z

next y

next x

end sub

2樓:匿名使用者

private sub command1_click()

for i = 1 to 20

for j = 1 to 33

for k = 1 to 99 step 2

if i * 5 + j * 3 + k / 3 = 100 then

text1.text = text1.text & "公雞:

" & i & "只" & "母雞:" & j & "只" & "小雞:" & k & "只" & chr(13) & chr(10)

end if

next

next

next

end sub

文字框的multiling屬性設為true,scrollbars屬性設為2垂直。

以下為改進版

private sub command1_click()

for i = 1 to 20

for j = 1 to 33

k = 100 - i * 5 - j * 3

if k >= 0 and k mod 3 = 0 then

text1.text = text1.text & "公雞:

" & i & "只" & "母雞:" & j & "只" & "小雞:" & k & "只" & chr(13) & chr(10)

end if

next

next

end sub

3樓:鴨仔

private sub command1_click()dim a, b, c, d as integerfor a = 1 to 20

for b = 1 to 34

for c = 3 to 300 step 3d = (100 - 5 * a - 3 * b) * 3 + a + b

if d = 100 and (a + b + c) = 100 then

print "公雞有"; a; "只", "母雞有"; b; "只", "小雞有"; c; "只"

print vbcrlf

end if

next

next

next

end sub

vb 編寫程式解決百錢買百雞問題

4樓:匿名使用者

private sub command1_click()dim cock, hen, chicken, sum as integer

for cock = 0 to 19

for hen = 0 to 33

chicken = 100 - cock - henif not (c mod 3) thensum = cock * 5 + 3 * hen + chicken / 3

if sum = 100 then

print "公雞" & cock, "母雞" & hen, "小雞" & chicken & vbnewline

end if

end if

next

next

end sub

5樓:

private sub command1_click()dim a, b, c as integerdim aconst, bconst as integerdim sum as integer

aconst = int((100 - (100 / 3)) / 5) + 1

for a = 0 to aconst

bconst = int((100 - a * 5) / 3) + 1

for b = 0 to bconst

c = 100 - a - b

if not (c mod 3) thensum = a * 5 + 3 * b + c / 3if sum = 100 then

print "公雞" & a, "母雞" & b, "小雞" & celseif sum > 100 thenexit for

end if

end if

next

next

end sub

vb程式設計的問題:如何編寫百錢買百雞的程式

6樓:刺友互

1、開啟visual c++ 6.0-檔案-新建-檔案-c++ source file。

2、輸入預處理命令和主函式:#include/*輸入輸出標頭檔案*/,void main()           /*空型別:主函式*/。

4、確定大公雞、母雞、小雞的數量: for(x=0;x<=19;x++)          /*確定大公雞數量*/ for(y=0;y<=33;y++)          /*確定母雞數量*/ 。

5、判斷100個錢是否買了100隻雞。

6、最後校驗輸出對應結果。

7樓:匿名使用者

private sub command1_click()'定義攻擊、母雞、小雞的**

a = 5

b = 3

c = (1 / 3)

for i = 1 to 100 \ a

for j = 1 to 100 \ b

for k = 3 to 100 step 3if (a * i + b * j + c * k = 100) and (i + j + k = 100) then

print "公雞:" + str(i) + "只、母雞" + str(j) + "只、小雞" + str(k) + "只"

end if

next

next

next

end sub

8樓:吹花

一百個銅錢買了一百隻雞,其中公雞乙隻5錢、母雞乙隻3錢,小雞一錢3只,問一百隻雞中公雞、母雞、小雞各多少)。

這是乙個古典數學問題,設一百隻雞中公雞、母雞、小雞分別為x,y,z,問題化為三元一次方程組:

這裡x,y,z為正整數,且z是3的倍數;由於雞和錢的總數都是100,可以確定x,y,z的取值範圍:

1) x的取值範圍為1~20

2) y的取值範圍為1~33

3) z的取值範圍為3~99,步長為3

對於這個問題我們可以用窮舉的方法,遍歷x,y,z的所有可能組合,最後得到問題的解。

private sub form_click()

dim x as integer, y as integer, z as integer

for x = 1 to 20

for y = 1 to 33

for z = 3 to 99 step 3

if x * 5 + y * 3 + z / 3 = 100 and x + y + z = 100 then print "公雞:" & x, "母雞:" & y, "小雞:

" & z

next z

next y

next x

end sub

**可以簡化,思路大致是這樣的

結果是:

公雞:4 母雞:18 小雞:78

公雞:8 母雞:11 小雞:81

公雞:12 母雞:4 小雞:84

如何鑑別百元大鈔,如何鑑別真假百元大鈔?

1 觀察紙張質量。真人民幣紙質有韌性,耐折迭,假人民幣紙質通常缺乏韌性,在同一條線上正反連續折迭幾次,票面輕輕一拉就斷裂。2 觀察色彩 圖案。由於人民幣大家經常接觸,色彩 圖案印象較深。觀察色彩 圖案時,主要看邊緣處是否清晰。真人民幣色彩 圖案邊緣處清晰,假人民幣色彩 圖案邊緣處通常模糊。3 擦試。...

幾 百 元的琺 琅 鍋可以買嗎?

1 琺琅鍋的好處。現在很多家庭都會選擇琺琅鍋,往往和它的顏值有關,琺琅塗層鑄鐵鍋,簡稱琺琅鍋。琺琅即搪瓷也叫琺琅瓷,是塗燒在金屬底坯表面上的無機玻璃瓷釉,因此顏色是很豐富的,能給枯燥的廚房帶來色彩。從功能上來看,導熱快,受熱均勻,保溫效能好,實用性很強,燒出來的食物要比普通鍋的食物,更加爛和入味,進...

尾號有8的百元鈔,尾號有6個8的百元鈔

4版還是5版,4版裡又有80版還是90版 你要說清楚的 如果是05版的 888888 這號碼還是不錯的 但是也不會像你說的7500都不賣 很可能 那張鈔票本身價值就高的 像80版的100啊 什麼的 但是你這張不是啊 我估價 這張 在500上下 收藏界 有這麼一類人 專門收藏 同號的 如果他們找上你 ...