gpt4 book ai didi

java - 如何获取数组中的输出值以进一步处理输出

转载 作者:行者123 更新时间:2023-12-02 02:48:12 25 4
gpt4 key购买 nike

我正在尝试获取一个数字的因子并找到该数字的因子之间的最小距离。我试图分两步完成这个过程,首先找到因素,然后用这些数字找到它们之间的最小距离。我用它来求一个数字的阶乘

 Scanner input = new Scanner(System.in);
int n;
System.out.println("Enter a number");
n = input.nextInt();
if(n <= 0){
System.out.println("cant input a number less than or equal to zero");
input.close();
return;
}
System.out.println("factors of " + "" + n+ "" + " are" );
for(int i = 1; i <= n; i++){
if(n % i == 0){
System.out.println(i);

}
}

我怎样才能再次获得这些输出以找到它们之间的最小距离我尝试过这个逻辑

 int[] a = new int[] {i};
Arrays.sort(a);
int minDiff = a[1]-a[0];
for (int i = 2 ; i != a.length ; i++) {
minDiff = Math.min(minDiff, a[i]-a[i-1]);
}
System.out.println(minDiff);

我的问题是,我不知道如何将这些输出存储在数组中以供进一步计算。

最佳答案

您应该创建一个列表(一个可调整大小的数组)并向其中添加因子。然后您可以在列表上应用您的逻辑。

看看:

List<Integer> factors = new ArrayList<>();  // create an empty ArrayList
for(int i = 1; i <= n; i++){
if(n % i == 0){
System.out.println(i);
factors.add(i); // add i to it.
}
}
// we can hopefully assume that n have at least two factors (if n > 1, that is)
// no need to sort, insertion order is kept
int minDiff = factors.get(1) - factors.get(0);
for (int i = 2 ; i < factors.size() ; i++) {
minDiff = Math.min(minDiff, factors.get(i)-factors.get(i-1));
}
System.out.println(minDiff);

关于java - 如何获取数组中的输出值以进一步处理输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44245818/

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