Кирпич Эйлера в Java - PullRequest
       47

Кирпич Эйлера в Java

0 голосов
/ 06 апреля 2020

Привет всем, кто тратит время на то, чтобы попытаться решить мою проблему. Я действительно застрял в первый раз за время и очень ценю некоторую помощь. Но достаточно экспозиции; вот то, что я реализовал до сих пор:

public class EulerBrick {

    private int a, b, c;
    private int d, e, f;
    private Random random;

    public EulerBrick(int a, int b, int c) {
        this.a = a;
        this.b = b;
        this.c = c;
        this.d = (int) Math.sqrt((a * a) + (b * b));
        this.e = (int) Math.sqrt((a * a) + (c * c));
        this.f = (int) Math.sqrt((b * b) + (c * c));
        this.random = new Random();

        if (verify(a, b, c, random.nextInt())) {
            if (a % 3 != 0) {
                if (b % 3 != 0) return;
                if (c % 3 != 0) return;
            }
            if (a % 4 != 0) {
                if (b % 4 != 0) return;
                if (c % 4 != 0) return;
            }
            if (a % 11 != 0) {
                if (b % 11 != 0) {
                    if (c % 11 != 0) return;
                }
            }
        } else return;

        printDimensions();
    }

    public boolean verify(double a, double b, double c, int k) {
        a *= k;
        b *= k;
        c *= k;

        if (a % 3 != 0) {
            if (b % 3 != 0) return false;
            if (c % 3 != 0) return false;
        }
        if (a % 4 != 0) {
            if (b % 4 != 0) return false;
            if (c % 4 != 0) return false;
        }
        if (a % 11 != 0) {
            if (b % 11 != 0) {
                if (c % 11 != 0) return false;
            }
        }
        return true;
    }

    public void printDimensions() {
        System.out.println("Side A: " + a + ", Side B: " + b + ", Side C: " + c + ", Side D: " + d + ", Side E: " + e + ", Side F: " + f);
    }

}

А вот основной класс, который я использую для его проверки:

public class Main {

    public static void main(String[] args) throws InterruptedException {
        int i = 0, j = 0, k = 0;

        while (true) {
            new EulerBrick(i += 3, j += 4, k += 11);
            Thread.sleep(1000);
        }

//      EulerBrick brick = new EulerBrick(44, 117, 240);
    }

}

Снова любая помощь будет принята с благодарностью. Кроме того, это не курс / класс, а просто упражнение, на котором я себя поставил.

...