java 我如何调整我的代码,使其识别输入的数字不形成线性级数?[关闭]

unftdfkk  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(83)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

4小时前关门了。
Improve this question

这是我的代码到目前为止

import java.util.Scanner ;

public class LinearProgression {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in) ;

        System.out.println("How many numbers would you like to enter?");
        int size = input.nextInt();

        System.out.println("Please enter " + size + " values:");
        int[] values = new int[size];
        for (int i=0 ; i<size ; i=i+1) {
            values[i] = input.nextInt();
        }

        //Your code here

        boolean isLinearProgression = true;
        for(int i = 0; i > values.length; i++){
            if (values[0] > values [1]){
            isLinearProgression = false;
        }
    }
        
        if (isLinearProgression) {
            System.out.println("This is a linear progression");
        } else {
            System.out.println("This is not a linear progression");
        }
     }

}

我需要它来打印这个

我已经有了打印“这是一个线性级数”的代码,但即使我输入了不是线性级数的数字,它也会打印出我不想要的信息。我希望代码能识别我输入的数字之间的模式和空格,这样它就能根据我输入的数字打印出相应的语句。有人能告诉我正确的方法吗?

toe95027

toe950271#

你需要两个点来定义一个线性级数,y = mx + B。这意味着斜率是。

int m = values[1] - values[0];

如果 x 是数组的索引,那么我们可以计算偏移量。

int b = values[0];

现在我们可以遍历数组的其余部分,并确保值遵循相同的线性级数。

for (int i = 2; i < values.length; i++) {
    if (m * i + b != values[i]) {
        isLinearProgression = false;
    }
}

相关问题