Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.85 KB | None | 0 0
  1.  
  2. import java.util.Scanner;
  3.  
  4. public class RecursiveExponentiator {
  5.  
  6.     // Määritellään double vakio NaN
  7.     public static final double NaN = 0d / 0d;
  8.  
  9.     public static double korotaPotenssiin(int base, int exponent) {
  10.         /* Metodi saa parametriarvoiksi käyttäjältä kantaluvun sekä eksponentin.
  11.         Metodi tarkistaa, että exponentti on laillinen ja kutsuu itseään eksponentin määrän verran.
  12.         Kantaluku kertaantuu itse itsellään joka kutsulla.
  13.         */
  14.  
  15.         // Jos eksponentti on nolla palautetaan 1
  16.         if (exponent == 0) {
  17.             return (double) 1; // Tyyppimuunnos doubleksi, jotta metodi hyväksyy sen
  18.         }
  19.         if (exponent > 0 ) {
  20.             return (base * korotaPotenssiin(base, exponent - 1)); // Metodi kutsuu itseään...
  21.         }
  22.         else { // Palautetaan vakio NaN, jos yläpuolella olevat if-lauseet eivät toteudu
  23.             return NaN;
  24.         }
  25.  
  26.     }
  27.  
  28.     public static void main(String[] args) {
  29.         Scanner reader = new Scanner(System.in);
  30.         System.out.println("Hello! I am a recursive exponentiator.");
  31.         System.out.println("Please, enter base:");
  32.         int base = reader.nextInt();
  33.         System.out.println("Please, enter exponent:");
  34.         int exponent = reader.nextInt();
  35.         // Kutsutaan metodia ja sijoitetaan se double tyyppiseen muuttujaan
  36.         double potency = korotaPotenssiin(base, exponent);
  37.         // Jos eksponentti oli laillinen tulostetaan tulos näytölle
  38.         if (!Double.isNaN(potency)) {
  39.             int value = (int) potency; // Doublen tyyppimuunnos int arvoiseksi
  40.             System.out.println(base + " ** " + exponent + " = " + value + ".");
  41.         }
  42.         else { // Tulostetaan error jos metodista saatu arvo on NaN eli eksponentti oli laiton
  43.             System.out.println("Error!");
  44.         }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement