📢 Nuovo Corso Bootstrap Completo disponibile!

Esercizi su BigInteger e BigDecimal in Java

Ecco degli esercizi con soluzione per praticare l’uso delle classi BigInteger e BigDecimal in Java.

Esercizio 1: Creazione di BigInteger

Creare un oggetto `BigInteger` e stamparne il valore.
import java.math.BigInteger;
public class EsempioBigInteger {
public static void main(String[] args) {
BigInteger bigInt = new BigInteger("123456789012345678901234567890");
System.out.println("BigInteger: " + bigInt);
}
}

Esercizio 2: Operazioni Aritmetiche con BigInteger

Eseguire addizione, sottrazione, moltiplicazione e divisione con `BigInteger`.
import java.math.BigInteger;
public class OperazioniBigInteger {
public static void main(String[] args) {
BigInteger a = new BigInteger("12345678901234567890");
BigInteger b = new BigInteger("98765432109876543210");
BigInteger somma = a.add(b);
BigInteger differenza = a.subtract(b);
BigInteger prodotto = a.multiply(b);
BigInteger quoziente = a.divide(b);
System.out.println("Somma: " + somma);
System.out.println("Differenza: " + differenza);
System.out.println("Prodotto: " + prodotto);
System.out.println("Quoziente: " + quoziente);
}
}

Esercizio 3: Creazione di BigDecimal

Creare un oggetto `BigDecimal` e stamparne il valore.
import java.math.BigDecimal;
public class EsempioBigDecimal {
public static void main(String[] args) {
BigDecimal bigDec = new BigDecimal("12345.6789012345678901234567890");
System.out.println("BigDecimal: " + bigDec);
}
}

Esercizio 4: Operazioni Aritmetiche con BigDecimal

Eseguire addizione, sottrazione, moltiplicazione e divisione con `BigDecimal`.
import java.math.BigDecimal;
public class OperazioniBigDecimal {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("12345.6789");
BigDecimal b = new BigDecimal("98765.4321");
BigDecimal somma = a.add(b);
BigDecimal differenza = a.subtract(b);
BigDecimal prodotto = a.multiply(b);
BigDecimal quoziente = a.divide(b, BigDecimal.ROUND_HALF_UP);
System.out.println("Somma: " + somma);
System.out.println("Differenza: " + differenza);
System.out.println("Prodotto: " + prodotto);
System.out.println("Quoziente: " + quoziente);
}
}

Esercizio 5: Confronto tra BigInteger

Confrontare due oggetti `BigInteger` utilizzando i metodi `compareTo` e `equals`.
import java.math.BigInteger;
public class ConfrontoBigInteger {
public static void main(String[] args) {
BigInteger a = new BigInteger("12345678901234567890");
BigInteger b = new BigInteger("12345678901234567890");
BigInteger c = new BigInteger("98765432109876543210");
System.out.println("a equals b: " + a.equals(b));
System.out.println("a compareTo b: " + a.compareTo(b));
System.out.println("a compareTo c: " + a.compareTo(c));
}
}

Esercizio 6: Confronto tra BigDecimal

Confrontare due oggetti `BigDecimal` utilizzando i metodi `compareTo` e `equals`.
import java.math.BigDecimal;
public class ConfrontoBigDecimal {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("12345.6789");
BigDecimal b = new BigDecimal("12345.6789");
BigDecimal c = new BigDecimal("98765.4321");
System.out.println("a equals b: " + a.equals(b));
System.out.println("a compareTo b: " + a.compareTo(b));
System.out.println("a compareTo c: " + a.compareTo(c));
}
}

Esercizio 7: Calcolo del Fattoriale con BigInteger

Calcolare il fattoriale di un numero grande utilizzando `BigInteger`.
import java.math.BigInteger;
public class FattorialeBigInteger {
public static void main(String[] args) {
int n = 50; // Numero di cui calcolare il fattoriale
BigInteger fattoriale = BigInteger.ONE;
for (int i = 2; i <= n; i++) {
fattoriale = fattoriale.multiply(BigInteger.valueOf(i));
}
System.out.println("Fattoriale di " + n + " è: " + fattoriale);
}
}

Esercizio 8: Calcolo di Potenze con BigDecimal

Calcolare la potenza di un numero utilizzando `BigDecimal`.
import java.math.BigDecimal;
import java.math.MathContext;
public class PotenzaBigDecimal {
public static void main(String[] args) {
BigDecimal base = new BigDecimal("2.5");
int esponente = 3;
BigDecimal potenza = base.pow(esponente, MathContext.DECIMAL64);
System.out.println(base + " elevato alla potenza di " + esponente + " è: " + potenza);
}
}

Esercizio 9: Calcolo di Radici con BigDecimal

Calcolare la radice quadrata di un numero utilizzando `BigDecimal`.
import java.math.BigDecimal;
import java.math.MathContext;
public class RadiceBigDecimal {
public static void main(String[] args) {
BigDecimal numero = new BigDecimal("25.0");
BigDecimal radice = sqrt(numero, MathContext.DECIMAL64);
System.out.println("Radice quadrata di " + numero + " è: " + radice);
}
public static BigDecimal sqrt(BigDecimal value, MathContext mc) {
BigDecimal x0 = new BigDecimal(0);
BigDecimal x1 = new BigDecimal(Math.sqrt(value.doubleValue()));
while (!x0.equals(x1)) {
x0 = x1;
x1 = value.divide(x0, mc).add(x0).divide(BigDecimal.valueOf(2), mc);
}
return x1;
}
}

Esercizio 10: Conversione tra BigInteger e BigDecimal

Convertire un oggetto `BigInteger` in `BigDecimal` e viceversa.
import java.math.BigInteger;
import java.math.BigDecimal;
public class ConversioneBigIntegerBigDecimal {
public static void main(String[] args) {
BigInteger bigInt = new BigInteger("12345678901234567890");
BigDecimal bigDec = new BigDecimal(bigInt);
System.out.println("BigDecimal da BigInteger: " + bigDec);
BigDecimal bigDec2 = new BigDecimal("12345.6789");
BigInteger bigInt2 = bigDec2.toBigInteger();
System.out.println("BigInteger da BigDecimal: " + bigInt2);
}
}