我编写的程序给出了所有组合直到'n',其中组合不包含任何重复元素。 以下是代码(对于n = 4):
int[] arr = {0,1,2,3,4};
for (int i = 0; i < arr.length; i++)
{
System.out.println(i);
for (int j = i+1; j < arr.length; j++)
{
System.out.println(i+""+j);
for (int k = j+1; k < arr.length; k++)
{
System.out.println(i+""+j+""+k);
for (int l = k+1; l < arr.length; l++)
{
System.out.println(i+""+j+""+k+""+l);
for (int m = l+1; m < arr.length; m++)
{
System.out.println(i+""+j+""+k+""+l+""+m);
}
}
}
}
}
输出为:
0
01
012
0123
01234
0124
013
0134
014
02
023
0234
024
03
034
04
1
12
123
1234
124
13
134
14
2
23
234
24
3
34
4
我想让用户输入任意数字(n)以执行类似的功能。
答案 0 :(得分:0)
首先,您使用了递归标记,我无法在您的代码中看到递归。
您可以通过BufferedReader
接收用户输入。您可以使用递归解决上述问题。先尝试一下。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine().trim());
int arr[] = new int[n];
String s[] = br.readLine().split(" ");
for(int i=0;i<n;i++){
arr[i] = Integer.parseInt(s[i]);
}