【发布时间】:2023-03-15 12:55:01
【问题描述】:
我不知道这是不是一个愚蠢的问题,但我需要在不使用递归的情况下动态更改 for 循环的数量。
例如,如果 n=3,我需要 3 个嵌套的 for 循环。
for(int i=0; i<size; i++){
for(int j=0; j<size-1; j++){
for(int k=0; k<size-2; k++){
//do something
}
}
}
如果 n=5:
for(int i=0; i<size; i++){
for(int j=0; j<size-1; j++){
for(int k=0; k<size-2; k++){
for(int l=0; l<size-3; l++){
for(int m=0; m<size-4; m++){
//do something
}
}
}
}
}
有没有办法在不递归的情况下实现这一点? 另一个问题:Java 中的 Multiple Dispatch 有什么用?我正在尝试用一种方法编写一些东西,它应该在参数的不同情况下运行不同的事件。 NO IF 语句/三元运算符/案例。
注意:我只能有一种方法(部分问题),并且不能使用递归。对不起。
【问题讨论】:
-
输入和输出到底是什么?恐怕答案可能取决于他们。
-
n 是否有最大可能值?
-
n 没有最大值。 1 到正信息。
-
在计算机上不可能是正无穷大。可以是
Integer.MAX_VALUE或Long.MAX_VALUE。有一种方法可以让它变大,但Long.MAX_VALUE足够大,以至于循环0...Long.MAX_VALUE可能需要数年时间才能完成。 -
如果你解释了整个问题呢?或许您正专注于解决基本问题的错误方法。