比如:1-100個整數取出 里面個數相加 =50的數字組合如:50,1+49,2+3+45...... 相加的 整數個數不限制。如果上面3個組合正確,再次取 5+45時候就不正確 因為45上次用過了。請問這個算法怎么解決啊?
2 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
只能給樓主一些提示。既然和是50,那就把范圍限定在1-50就行了。
50=1+49;49=2+47;47=3+44;44=4+40;40=5+35。。。。。
那么在縱向上:50=50;50=1+49;50=1+2+47;50=1+2+3+44;50=1+2+3+4+40。。。。。
橫向上:
50=50;
50=1+49;50=2+48;50=3+47.。。。。。2個數那必然是一個大于25,一個小于25
.。。。。。。。。。。。。。。。。。。。。3個數必然必然要有一個數小于16(即50 \ 3)
由于1+。。。+9=45,所以個數不會超過9個,也就是說,在縱向上的范圍已經定了。
那么完全可以把縱向上的所有組合寫出來,然后從得到橫向的所有組合,因為(縱向上使用很多大一部分數,所以橫向的集合時很小的),這樣就得到了以縱向為基準的組合;在通過同樣的方式得到以橫向為基準的組合。

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
這個就是一個多樹形問題吧。
比如,首先隨便選兩個數相加得到50的數,如下:
50
25+25
12+13 +13 +12
以此類推。
但是兩個數相加得到50的次數一共有多少次?25次吧。
- 2 回答
- 0 關注
- 651 瀏覽
添加回答
舉報
0/150
提交
取消