Un peu de maths : les puissances 2/2

Suite du post Un peu de maths : les puissances part.1
Petit rappel sur les règles de la puissance :

  • x^0 = 1.
  • x^y = x^(y/2)*x^(y/2) si y est pair.
  • x^y=x^(y-1)*x sinon.

Le petit programme qui suit demande deux valeurs (x et i) et calcule x puissance i :

import java.util.Scanner;

class puissance{
  static double puissance(double x,int n){
    double reponse;
    if (n==0) {
      reponse=1;
    }else{
      reponse=puissance(x,n/2);
      if(n%2==0){
        reponse=reponse*reponse;//pair
      }else{
        reponse=reponse*reponse*x;//impair
      }
    }
    return reponse;
  }
  public static void main(String[] args) {
    double x;
    Scanner lectureValeur = new Scanner(System.in);
    System.out.print("Valeur de x : ");
    x=lectureValeur.nextDouble();
    System.out.print("Puissance demandee : ");
    i=lectureValeur.nextInt();
    System.out.println(x+"^"+i+" = "+(int)(puissance(x,i)));
  }
}

Résultat sur le terminal :

nerdyprog@nerdycode ~ $ javac puissance.java
nerdyprog@nerdycode ~ $ java puissance
Valeur de x : 2
Valeur de i : 2
2.0^2 = 4

Le deuxieme petit programme permet d’écrire un calcul de la forme 2^2 et effectue le calcul :

import java.util.Scanner;

class puissance2{
  static double puissance(double x,int n){
    double reponse;
    if (n==0) {
      reponse=1;
    }else{
      reponse=puissance(x,n/2);
      if(n%2==0){
        reponse=reponse*reponse;//pair
      }else{
        reponse=reponse*reponse*x;//impair
      }
    }
    return reponse;
  }
  public static void main(String[] args) {
    double x=0;
    String calcul;
    int j=0, k=0, n=0;
    Scanner lectureEntre = new Scanner(System.in);
    System.out.print("Calcul à effectuer : ");
    calcul=lectureEntre.nextLine();
    for (int i=0; i<calcul.length(); i++) {
      if(calcul.charAt(i)!='^'){
        j=i+1;
        k=j+1;
      }else{
        break;
      }
    }
    x=Double.parseDouble(calcul.substring(0,j));
    n=Integer.parseInt(calcul.substring(k,calcul.length()));
    System.out.println(x+"^"+n+" = "+(int)(puissance(x,n)));

  }
}

Résultat sur le terminal :

nerdyprog@nerdycode ~ $ javac puissance.java
nerdyprog@nerdycode ~ $ java puissance
Calcul à effectuer : 2^2
2.0^2 = 4

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s