java如何使用递归方法查找所有可能的数字
我想写一个递归方法来打印所有可能的安排 数字,整数1到9
以三行三列的网格随机排列。例如:
6 2 1
5 4 7
3 9 8
对不起,我没有任何代码,因为这对我来说很难
public class Test {
public static void main (String[] args){
String x = "123456789";
System.out.println(test(x,0));
}
public static String test(String x , int y){
if(x.length()==1)return "";
return x.charAt(y)+test(x.substring(y),y);
}
# 1 楼答案
传递值对一个数组,随机化并创建一个循环来生成矩阵。 循环:创建一个通用循环,开始生成具有i0,j0的矩阵,类似于矩阵的位置i1,j1,并添加数组的值
# 2 楼答案
有很多方法可以实现类似的功能,这是一个例子。为了方便起见,我将使用
int[]
而不是String
:这将生成1-9的所有可能组合。该算法的思想是跟踪已经使用的数字,通过循环选择所有可用的数字
请注意,传递
perm
和alreadyUsed
的副本非常重要,否则您将只传递相同的数组并覆盖以前的排列