*題目分析與算法設計設雞翁、雞母、雞雛的個數分別為x,y,z,題意給定***100錢要買百雞,若全買公雞最多買20只,顯然x的值在0~20之間;同理,y的取值範圍在0~33之間,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此問題可歸結為求這個不定方程的整數解。由程序設計實現不定方程的求解與手工計算不同。在分析確定方程中未知數變化範圍的前提下,可通過對未知數可變範圍的窮舉,驗證方程在什麽情況下成立,從而得到相應的解。 *程序說明與註釋:
#include void main() }
*運行結果 : Follwing are possible plans to buy 100 fowls with 100 Yuan. 1:cock=0 hen=25 chicken=75 2:cock=4 hen=18 chicken=78 3:cock=8 hen=11 chicken=81 4:cock=12 hen=4 chicken=84
*總是的進壹步討論這類求解不定方程總理的實現,各層循環的控制變量直接與方程未知數有關,且采用對未知數的取值範上窮舉和組合的方法來復蓋可能得到的全部各組解。能否根據題意更合理的設置循環控制條件來減少這種窮舉和組合的次數,提高程序的執行效率,請讀者考慮
參考資料