gpt4 book ai didi

java - 如何获得从扫描仪输入到阵列的所有排列?

转载 作者:行者123 更新时间:2023-11-30 10:06:22 25 4
gpt4 key购买 nike

我正在尝试查找来自扫描仪的 PIN 码的所有排列。到目前为止,我已经知道了这一点,我想它会设置一个带有自定义数字的数组。我怎样才能得到这段代码来向我展示所有可能的选项?请记住,我是 Java 的新手,所以简单的解释是最好的。谢谢

import java.util.Arrays;
import java.util.Scanner;

public class Methods {

public static void main(String[] args) {
// TODO Auto-generated method stub

int[] arr = new int[3];

Scanner sc = new Scanner(System.in);
System.out.println("Please enter first digit: ");
arr[0] = sc.nextInt();
System.out.println("Please enter second digit: ");
arr[1] = sc.nextInt();
System.out.println("Please enter third digit: ");
arr[2] = sc.nextInt();
System.out.println("Please enter fourth digit: ");
arr[3] = sc.nextInt();

System.out.println(Arrays.toString(arr));
}
}

最佳答案

嘿,您可以使用以下代码创建一个长度为 n 的数组并计算排列:

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.print("please enter the length of you array: "); // 4 if you want a 4 digit pincode
int length = sc.nextInt();

int[] arr = new int[length];

for (int i = 0; i < length; i++) {
System.out.printf("Please enter a value for digit #%s: ", i);
arr[i] = sc.nextInt();
}

StringBuilder bldr = new StringBuilder();
Arrays.stream(arr).forEach(bldr::append);
permutation(bldr.toString());
}

public static void permutation(String str) {
permutation("", str);
}

private static void permutation(String prefix, String str) {
int n = str.length();
if (n == 0)
System.out.println(prefix);
else {
for (int i = 0; i < n; i++)
permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i + 1, n));
}
}

同时检查 this question有关排列的更多信息。

关于java - 如何获得从扫描仪输入到阵列的所有排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54689397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com