因為不擅長.net所以想請各位先進幫我解惑
我的來源
Dim i() as Integer = {1,2,3,4}
我想要輸出的結果是
1
1+2
1+3
1+4
1+2+3
1+2+4
1+2+3+4
1+3+4
2
2+3
2+4
...
以此類推
我大概有個概念覺得應該是要用遞迴做的,
但是不太清楚要怎麼用vb.net寫,
我目前在專案環境被限制寫法類似:
Dim myfunc As Func(Of Integer,Integer) = Function(ByVal num As Integer) As Integer
Dim res As Integer
[我沒有概念的地方]
Return res
End Function
arg=myfunc(i)
懇請大家給我一些想法和指教,謝謝大家
拿這個去改
python:
from itertools import combinations
testList = [1, 2, 3, 4]
for i in range(1, len(p)+1):
for c in combinations(testList, i):
print(c, "sum:", sum(c))
結果:
(1,) sum: 1
(2,) sum: 2
(3,) sum: 3
(4,) sum: 4
(1, 2) sum: 3
(1, 3) sum: 4
(1, 4) sum: 5
(2, 3) sum: 5
(2, 4) sum: 6
(3, 4) sum: 7
(1, 2, 3) sum: 6
(1, 2, 4) sum: 7
(1, 3, 4) sum: 8
(2, 3, 4) sum: 9
(1, 2, 3, 4) sum: 10
不過我還是得說一句,作業自己想,尤其是演算法。
For i = 0 To arrList.Count - 1
c = i + 1
str2 = arrList(i)
Console.WriteLine(str2)
For c = c To arrList.Count - 1
Console.WriteLine(arrList(i) + "+" + arrList(c))
str2 = str2 + "+" + arrList(c)
d = c + 1
For d = d To arrList.Count - 1
Console.WriteLine(str2 + "+" + arrList(d))
'str2 = str2 + "+" + arrList(c)
Next
Next
Next
我想的是這樣,輸出的結果是
1
1+2
1+2+3
1+2+4
1+3
1+2+3+4
1+4
2
2+3
2+3+4
2+4
3
3+4
4
這是我希望的順序,但是我不知道為什麼1+3會在1+2+3+4前面,而且這樣的寫法只能做四個元素的組合,超過就會亂掉,所以我一定那裡想錯了,現在有點腦袋卡住