求計算及排列程式?

2012-02-11 5:22 pm
題目是:現時有8個方格,每個方格都可以填上多個0~24的數字,8個方格相加等於42,從最小的排列開始,又因為排列的數目過多,故每個方格可選擇要求的幾個數字,如第一格只需要0,1,2,3,5,6,7,8,9,11,13,18,每一格都可以填上要求的幾個數字,這樣排列的數目列便有限了。

如果說0~24的那部份,我做得一百萬多個,不過他說做錯了,重點是填上多個可選擇的數字和總和是42,希望各位大大的提供大大的幫助,我要的是完整的程式碼,先行多謝多位的幫忙。

回答 (2)

2012-02-14 11:42 pm
✔ 最佳答案
Not know what language for programming, below is pseudo-code for your reference.


Desire_sum=42
Nmin=0
Nmax=24


for j=desire_sum downto Nmax

sum_left=Desire_sum

tmp_res=""
tmp_sum=0

For i=1 to 8
sum_left=maxAvailNum(Nmin,Nmax,sum_left)

tmp_sum=tmp_sum+sum_left

tmp_res=tmp_res + "," + tmp_sum

sum_left=Desire_sum - tmp_sum
if sum_left < 0 set i=9

Next i
if sum_left = 0 print tmp_res
Next J




Function MaxAvailNum
parameter from_num , To_num, achieve_num
if achieve_num > to_num return To_Num
if achieve_num <to_num return from_num
return achieve_num
2012-02-12 8:18 am
你用什麼程式語言啊?


收錄日期: 2021-04-13 18:32:48
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20120211000051KK00102

檢視 Wayback Machine 備份