private static void testN(int n) { Razlomak razlomak = new Razlomak(); razlomak.setA(a); razlomak.setB(BigInteger.valueOf(1)); List<Razlomak> lista = new ArrayList<Razlomak>(); for (int i = 0; i < n; i++) { Razlomak razlomakN = new Razlomak(); razlomakN.setParent(i == 0 ? razlomak : lista.get(i - 1)); if (i == 0) { razlomak.setC(razlomakN); } else { lista.get(lista.size() - 1).setC(razlomakN); } if (i == n - 1) { razlomakN.setA(koef.get(i)); } else { razlomakN.setA(koef.get(i)); razlomakN.setB(BigInteger.valueOf(1)); } lista.add(razlomakN); } BigInteger d = razlomak.getValue(); int result = calculate(d + ""); System.out.println("Result: " + result); }
public BigInteger getValue() { if (c != null) { if (c.isRazlomak()) c.calculate(); BigInteger c1 = c.getA(); BigInteger result = (a.multiply(c1)).add(b); return result; } else { return a.add(b); } }
public void calculate() { if (c != null && !c.isRazlomak()) { parent.b = c.getA(); a = (a.multiply(c.getA())).add(b); b = BigInteger.valueOf(0); } else if (c != null) { c.calculate(); parent.b = c.getA(); a = (a.multiply(c.getA())).add(b); b = BigInteger.valueOf(0); } else { parent.b = a.add(b); } }