我是一个相对新手的程序员。正如标题所示,我需要一个算法,让我得到一个变量嵌套循环的相同函数。即:
for(..)
{ for(..){
for(..){....}
.
.
}}
嵌套循环的数量将根据用户输入而变化。我想要实现的是找到数字(10、9、8、7、6、5、4)的所有组合。我已经阅读了许多资料,但要么我没有完全理解它们(我是编程新手),要么它们不能满足我的目的。我以后需要这些组合进行某些计算,而不仅仅是打印所有组合。一个方法,我学到的是使用递归。我不完全理解它。我试图制作一个递归函数,但失败了。这就是我想要的。
10 10 10
10 10 9
10 10 8
.
.
.
4 4 4
这个数字可能会变化(比如10 10 10 10,10 10 10 9...),这些组合将被存储在一个数组中,以便稍后进行操作。请保持简单并加上注释。
首选语言是Java,但任何语言都可以。强烈建议提供通用算法。附注:这不是一项作业。
感谢Amit。以下是可行的代码:
def findcombinations(array,n,sol,tt=[]):
if (n== 0):
tt.append(sol[:])
return
for x in array:
sol.append(x)
findcombinations(array,n-1,sol,tt)
del sol[-1]
return tt
调用该函数使用
print(findcombinations([1,2],3,[]))