【发布时间】:2012-03-09 23:44:33
【问题描述】:
我对编程比较陌生。正如标题所示,我需要一种算法,让我获得与变量嵌套循环相同的功能。即
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。任何语言都可以。强烈建议使用通用算法。附:这不是家庭作业。
感谢阿米特。这是工作代码
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,[]))
【问题讨论】:
-
学究式地说,“10”不是数字。您不妨改写一下。
-
对不起..我会把它改成数字..谢谢
标签: java algorithm dynamic loops nested