Salve.
Sto provando a fare girare questo codice che scrive le potenze di un numero intero, ma i risultati non sono corretti.
Perché le potenze dalla terza in poi vengono negative e numericamente sbagliate?codice:public class TestNumeri1 { public static void main(String[] args) { int numeroBase; numeroBase = 1411; String spazio = " "; int quadrato, cubo, quartaPot, quintaPot, sestaPot; double sestaPotDouble; quadrato = numeroBase * numeroBase; cubo = quadrato * numeroBase; quartaPot = cubo * numeroBase; quintaPot = quartaPot * numeroBase; sestaPot = quintaPot * numeroBase; sestaPotDouble = Math.pow(numeroBase, 6); System.out.println(); System.out.println(spazio + "numero base: " + numeroBase); System.out.println(spazio + "quadrato: " + quadrato); System.out.println(spazio + "cubo: " + cubo); System.out.println(spazio + "quarta potenza: " + quartaPot); System.out.println(spazio + "quinta potenza: " + quintaPot); System.out.println(spazio + "sesta potenza: " + sestaPot); System.out.println(); System.out.println("Altro modo per calcolare la sesta potenza: " + "usando Math.pow(): " + + sestaPotDouble); System.out.println(); } }
Cambiando numeroBase in 3, i risultati sono corretti, già mettendo 10 sballano dalla quinta potenza... Come se ci fosse un dominio di valori oltre il quale i risultati non sono attendibili...


Rispondi quotando