import javax.swing.JOptionPane; public class SommaPotenze { public static float sommaAvantiFloat(int n) { float somma=0; float termine=1/(float)3.0; for(int i=1; i<=n; i++) { somma += termine; termine=termine/3; } return somma; } public static float sommaIndietroFloat(int n) { float somma=0; for(int i=n; i>0; i--) { float termine=1; for(int j=1; j<=i; j++) termine /= 3; somma += termine; } return somma; } public static double sommaAvantiDouble(int n) { double somma=0; double termine=1/3.0; for(int i=1; i<=n; i++) { somma += termine; termine=termine/3; } return somma; } public static double sommaIndietroDouble(int n) { double somma=0; for(int i=n; i>0; i--) { double termine=1; for(int j=1; j<=i; j++) termine /= 3; somma += termine; } return somma; } public static void main(String[] args) { int n; n=Integer.parseInt(JOptionPane.showInputDialog("Digita numero di termini da sommare")); System.out.println("Somma dei primi "+n+" termini della serie geometrica di ragione 1/3"); System.out.println("In avanti, float \t"+sommaAvantiFloat(n)); System.out.println("All'indietro, float \t"+sommaIndietroFloat(n)); System.out.println("In avanti, double \t"+sommaAvantiDouble(n)); System.out.println("All'indietro, double \t"+sommaIndietroDouble(n)); System.exit(0); } }