關於「雞兔同籠」的問題,我之前已經發過一篇文章了,今天把它翻出來是為了解決之前被我忽略的問題「小數」,我們都直到沒有3.5隻雞,沒有10.2個雞爪。之前我們沒有錯是因為我們都在按照我們自己的方式操作我們製作製作出來的程序,這樣當然不會錯,如果你讓一個故意刁難你的測試人員試試看?測試一定能氣死你,哈哈,這段感悟源於我在做開發時候的「心語」,同學們在學這節課的時候可以把我之前的文章找出來對比一下,連結如下:scratch3.0圖形化編程軟體解決「雞兔同籠」問題
如圖所示,這是我昨天晚上給學生講課時候製作的一個版本。整個操作流程是這樣的:
貓問「有多少只腳?」你回答「**********」(通過腳本限制,你輸入的數字必須是偶數、必須大於零、必須是整數。否則就會一直問你這個問題,直到你回答符合要求為止,才會問你頭的數量)
貓問「有多少個頭?」你回答「*********」(通過你腳本的運算,判斷你輸入的頭數是否在最大值到最小值之間。判斷你輸入的是否為整數。否則就會一直問你這個問題,直到你回答符合要求為止,才會計算這籠子的雞兔數量)。
接下來是腳本製作環節
新建四個變量:頭的數量、腳的適量、雞的數量、兔子的數量,並對這四個變量進行初始化
使用功能偵測模塊中的「詢問」和「回答」兩個語句塊,製作詢問語句。
對回答的答案進行判斷,滿足三個條件才能對「腳的數量」進行賦值:
1、回答大於0;
2、必須可以被2整除;
3、不能有小數位。
接下來是頭數量的輸入
上面我們輸入了合法的腳的數量,例如輸入的是12,那麼頭的數量必須是大於等於3,小於等於6的。解釋一下,假設籠子裡全是兔子,那麼頭最少有3個頭(兔子是4隻腳,12/4=3);假設籠子裡全是雞,那麼頭最多有6個頭(雞是2隻腳,12/2=6)。所以對回答的要求如下:
1、(腳的數量/4)≤回答≤(腳的數量/2);
2、不能有小數;
然後就是運算部分了,我們可以先假設所有的腳都是雞的(雖然有點極端,但是很好用),那麼雞的數量顯然超過的頭的數量,所以做差,就是兔子的數量。
頭的數量減兔子的數量就是雞的數量。
最後就是使用「**連接**」語句塊來完成輸出表達,有點多,用了4個「連接」語句。#雞兔同籠#
好了,以上就是我對「雞兔同籠」這個命題的第二篇文章了,發現了新問題及時修補一下,希望大家可以喜歡。如果你有新奇特的題目或是新的設備,一定給我看看哈!沒準我們可以一起做點什麼,寫點教程做點遊戲也是好的,哈哈!