private void buildDvizenklis(FormaIrSkaiciai formaIrSkaiciai) { BigInteger sveikasSkaicius = formaIrSkaiciai.getSveikasisSkaicius(); Poskyris poskyris = formaIrSkaiciai.getForma().getPoskyris(); Gimine gimine = formaIrSkaiciai.getForma().getGimine(); Rusis rusis = formaIrSkaiciai.getForma().getRusis(); Checks.checkMinInclusive( "forma.sveikasSkaicius", sveikasSkaicius, BigInteger.ZERO, Numbers.HUNDRED); if (sveikasSkaicius.compareTo(BigInteger.TEN) < 0) { vienzenkliai.buildVienzenklis(formaIrSkaiciai); } else if (sveikasSkaicius.compareTo(Numbers.TWENTY) < 0) { if (poskyris == Poskyris.Kelintinis) { zodziai.add(getSuma(Zodis.getKelintinis(sveikasSkaicius, gimine, rusis))); } else { zodziai.add(getSuma(Zodis.getPagrindinis(sveikasSkaicius, Gimine.V))); } } else { BigInteger vienetai = sveikasSkaicius.mod(BigInteger.TEN); sveikasSkaicius = sveikasSkaicius.divide(BigInteger.TEN); BigInteger desimtys = sveikasSkaicius.mod(BigInteger.TEN); vienzenkliai.buildVienzenklis(formaIrSkaiciai.clone().sveikasSkaicius(vienetai)); if (poskyris == Poskyris.Kelintinis && vienetai.equals(BigInteger.ZERO)) { zodziai.add( getSuma(Zodis.getKelintinis(desimtys.multiply(BigInteger.TEN), gimine, rusis))); } else { zodziai.add(getSuma(Zodis.getPagrindinis(desimtys.multiply(BigInteger.TEN), Gimine.V))); } } }
private void buildVienzenklis(FormaIrSkaiciai formaIrSkaiciai) { BigInteger sveikasSkaicius = formaIrSkaiciai.getSveikasisSkaicius(); BigInteger tikrasSkaicius = formaIrSkaiciai.getPradinisSveikasisSkaicius(); Gimine gimine = formaIrSkaiciai.getForma().getGimine(); Poskyris poskyris = formaIrSkaiciai.getForma().getPoskyris(); Rusis rusis = formaIrSkaiciai.getForma().getRusis(); Checks.checkMinInclusive( "forma.sveikasSkaicius", sveikasSkaicius, BigInteger.ZERO, BigInteger.TEN); if (sveikasSkaicius.equals(BigInteger.ZERO) && tikrasSkaicius.equals(BigInteger.ZERO) || sveikasSkaicius.compareTo(BigInteger.ZERO) > 0) { if (poskyris == Poskyris.Pagrindinis) { if (sveikasSkaicius.equals(BigInteger.ZERO)) { zodziai.add(getSuma(Zodis.getPagrindinis(sveikasSkaicius, Gimine.V))); } else { zodziai.add(getSuma(Zodis.getPagrindinis(sveikasSkaicius, gimine))); } } else if (poskyris == Poskyris.Dauginis) { zodziai.add(getSuma(Zodis.getDauginis(sveikasSkaicius, gimine))); } else if (poskyris == Poskyris.Kelintinis) { zodziai.add( getSuma( Zodis.getKelintinis( sveikasSkaicius, gimine, (!sveikasSkaicius.equals(BigInteger.ZERO) ? rusis : Rusis.P)))); } } }
private String buildKuopinis(FormaIrSkaiciai formaIrSkaiciai) { BuilderChecks.checkPoskyris( "formaIrSkaiciai.poskyris", formaIrSkaiciai.getForma().getPoskyris(), Arrays.asList(Poskyris.Kuopinis)); BigInteger skaicius = formaIrSkaiciai.getSveikasisSkaicius(); zodziai.add(getSuma(Zodis.getKuopinis(skaicius))); return ZodisJunginyje.toString(zodziai, formaIrSkaiciai); }
private void buildTrizenklis(FormaIrSkaiciai formaIrSkaiciai) { BigInteger sveikasSkaicius = formaIrSkaiciai.getSveikasisSkaicius(); Poskyris poskyris = formaIrSkaiciai.getForma().getPoskyris(); Gimine gimine = formaIrSkaiciai.getForma().getGimine(); Checks.checkMinInclusive( "forma.sveikasSkaicius", sveikasSkaicius, BigInteger.ZERO, Numbers.THOUSAND); BigInteger dvizenklis = sveikasSkaicius.mod(Numbers.HUNDRED); dvizenkliai.buildDvizenklis(formaIrSkaiciai.clone().sveikasSkaicius(dvizenklis)); BigInteger simtai = sveikasSkaicius.divide(Numbers.HUNDRED); BigInteger liekana = sveikasSkaicius.mod(Numbers.HUNDRED); if (simtai.equals(BigInteger.ONE)) { if (poskyris == Poskyris.Kelintinis && liekana.equals(BigInteger.ZERO)) { zodziai.add(getSuma(Zodis.getKelintinis(Numbers.HUNDRED, gimine, Rusis.Iv))); } else { zodziai.add(getSuma(Zodis.getPagrindinis(Numbers.HUNDRED, Gimine.V))); } } else if (simtai.compareTo(BigInteger.ONE) > 0) { if (poskyris == Poskyris.Kelintinis && liekana.equals(BigInteger.ZERO)) { zodziai.add(getDaugyba(Zodis.getKelintinis(Numbers.HUNDRED, gimine, Rusis.Iv))); zodziai.add(getSuma(Zodis.getPagrindinis(simtai, Gimine.V))); } else { zodziai.add(getDaugyba(Zodis.getPagrindinis(Numbers.HUNDRED, Gimine.V))); zodziai.add(getSuma(Zodis.getPagrindinis(simtai, Gimine.V))); } } }
private void buildDaugiazenklis( FormaIrSkaiciai formaIrSkaiciai, BigInteger tukstancioLaipsnis) { BigInteger sveikasSkaicius = formaIrSkaiciai.getSveikasisSkaicius(); Poskyris poskyris = formaIrSkaiciai.getForma().getPoskyris(); Gimine gimine = formaIrSkaiciai.getForma().getGimine(); BuilderChecks.checkPowerOfThousand("tukstancioLaipsnis", tukstancioLaipsnis); BigInteger sk = sveikasSkaicius; BigInteger tukstanciu = sk.divide(tukstancioLaipsnis); BigInteger tukstanciuLiekana = sveikasSkaicius.mod(tukstancioLaipsnis); if (tukstancioLaipsnis.compareTo(Numbers.THOUSAND) > 0) { buildDaugiazenklis( formaIrSkaiciai.clone().sveikasSkaicius(tukstanciuLiekana), tukstancioLaipsnis.divide(Numbers.THOUSAND)); } else { trizenkliai.buildTrizenklis(formaIrSkaiciai.clone().sveikasSkaicius(tukstanciuLiekana)); } if (tukstanciu.equals(BigInteger.ZERO)) { // nieko } else if (tukstanciu.equals(BigInteger.ONE)) { if (poskyris == Poskyris.Kelintinis && tukstanciuLiekana.equals(BigInteger.ZERO)) { zodziai.add(getSuma(Zodis.getKelintinis(tukstancioLaipsnis, gimine, Rusis.Iv))); } else { zodziai.add(getSuma(Zodis.getPagrindinis(tukstancioLaipsnis, Gimine.V))); } } else if (tukstanciu.compareTo(BigInteger.ONE) > 0 && tukstanciu.compareTo(Numbers.THOUSAND) < 0) { if (poskyris == Poskyris.Kelintinis && tukstanciuLiekana.equals(BigInteger.ZERO)) { zodziai.add(getDaugyba(Zodis.getKelintinis(tukstancioLaipsnis, gimine, Rusis.Iv))); trizenkliai.buildTrizenklis( formaIrSkaiciai .clone() .sveikasSkaicius(tukstanciu) .poskyris(Poskyris.Pagrindinis) .gimine(Gimine.V)); } else { zodziai.add(getDaugyba(Zodis.getPagrindinis(tukstancioLaipsnis, Gimine.V))); trizenkliai.buildTrizenklis( formaIrSkaiciai .clone() .sveikasSkaicius(tukstanciu) .poskyris(Poskyris.Pagrindinis) .gimine(Gimine.V)); } } else { if (poskyris == Poskyris.Kelintinis && tukstanciuLiekana.equals(BigInteger.ZERO)) { zodziai.add(getDaugyba(Zodis.getKelintinis(tukstancioLaipsnis, gimine, Rusis.Iv))); buildDaugiazenklis( formaIrSkaiciai.clone().sveikasSkaicius(tukstanciu).poskyris(Poskyris.Pagrindinis), tukstancioLaipsnis); } else { zodziai.add(getDaugyba(Zodis.getPagrindinis(tukstancioLaipsnis, Gimine.V))); buildDaugiazenklis( formaIrSkaiciai.clone().sveikasSkaicius(tukstanciu).poskyris(Poskyris.Pagrindinis), tukstancioLaipsnis); } } }