Преобразование в дробь - PullRequest
       18

Преобразование в дробь

0 голосов
/ 07 ноября 2019

Попытка преобразовать десятичную дробь в дробную и предоставить ее обратную

Это для Java. Я пробовал несколько методов и делал Math.pow, это немного сложно, когда у меня уже есть ответ в десятичной форме, я хочу только преобразовать его и дать программе ответное

public class ParallelSeriesCircuit {
    public static final int SERIES = 1;
    public static final int PARALLEL = 2;

    public int circuitType;
    public double[] resistance;
    public double Rtotal;
    public int Rseries;

    public int getNumberOfResistors() {
        return resistance.length;
    }

    public double getTotalResistance() {
        if (circuitType == SERIES) {

            return getSeriesResistance();
        } else {
            return getParallelResistance();
        }
    }

    public double getParallelResistance() {
        int i = 0;
        for (i = 0; i < resistance.length; i++) {
            Rtotal += 1 / resistance[i];


        }

        return Rtotal;
    }

    private double getSeriesResistance() {
        for (int i = 0; i < resistance.length; i++) {
            Rtotal += resistance[i];

        }
        return Rtotal;
    }

}

Проблема заключается вМетод getParallelResistance, как я не могу понять, преобразование в дробь. Это основано на пользовательском вводе, что делает его еще более сложным

1 Ответ

0 голосов
/ 07 ноября 2019

Формула для последовательного сопротивления равна R = R1 + R2 + R3 + ... и правильно рассчитывается как getSeriesResistance().

Формула для параллельного сопротивления равна 1 / R = 1 / R1 + 1 / R2 + 1 / R3 +..., но это не то, что getParallelResistance() вычисляет.

Измените на return 1 / Rtotal;


Также вам нужно сделать Rtotal локальной переменной:

public double getParallelResistance() {
    double sum;
    for (double r : resistance) {
        sum += 1 / r;
    }
    return 1 / sum;
}

private double getSeriesResistance() {
    double sum;
    for (double r : resistance) {
        sum += r;
    }
    return sum;
}
...