Java >> Java tutorial >  >> Java

Spion nummer i Java

I dette indlæg vil vi udvikle et Java-program for at kontrollere, om det givne nummer er et spionnummer eller ej? Vi vil også udvikle et Java-program til at finde alle de spionnumre, der findes mellem to givne numre.

Et tal, hvis sum af cifrene i er lig med produktet af dets cifre, kaldes spionnummer.

Eksempel:- 132
Summen af ​​cifre =1 + 3 + 2 =6
Produktet af cifrene =1 * 3 * 2 =6
Derfor er 132 et spiontal.

Tilsvarende 1124 er også et spiontal.
Summen af ​​cifre =1 + 1 + 2 + 4 =8
Produktet af cifrene =1 * 1 * 2 * 4 =8

Fremgangsmåde for at udvikle metode til at kontrollere, at det givne nummer er spionnummer eller ej,

1) Tag et tal
2) Angiv sum- og produktvariabler. Initialiser sumvariablen med 0 og produktvariablen med 1.
3) Find det sidste ciffer i tallet
4) Tilføj sidste ciffer til sumvariablen
5) Gang det sidste ciffer med produktvariabel
6) Fjern det sidste ciffer i tallet
7) Gentag 3 til 6 trin, indtil tallet bliver 0
8) Hvis værdien af ​​sum og produktvariabel er lig, er den givne nummer er spionnummer ellers er det ikke et spionnummer.

import java.util.Scanner;

public class SpyNumber {

   // method to check the Spy number
   private static boolean isSpy(int number) {

      // declare variables
      int lastDigit = 0;
      int sum = 0;
      int product = 1;

      // iterate all digits of number
      while(number != 0) {

         // find last digit
         lastDigit = number % 10;

         // add last digit to sum
         sum = sum + lastDigit;

         // multiply last digit with product
         product = product * lastDigit;

         // remove last digit
         number = number / 10;
      }

      // compare sum and product
      if(sum == product)
         return true;

      return false;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

      // create Scanner class object
      // to take input
      Scanner scan = new Scanner(System.in);

      // take input from end-user
      System.out.print("Enter an integer number::");
      number = scan.nextInt();

      // check number is Spy number or not
      result = isSpy(number);

      // display result
      if(result)
          System.out.println(number +
                  " is a Spy number.");
      else
          System.out.println(number +
                 " is not a Spy number.");

      // close Scanner class object
      scan.close();
   }
}

Outputtet fra de forskellige testcases:-

Indtast et heltal::132
132 er et spionnummer.

Indtast et heltal::133
133 er ikke et spionnummer.

Se også:- Specialnummer, Magisk nummer, Armstrong-nummer, Perfekt nummer, Evil Number, Spionnummer, Sunny-nummer i Java

Java-program til at finde alle spionnumre i et givet område

Vi kan også finde alle spionnumre, der findes mellem to givne numre. Til dette skal vi bruge en løkke.

import java.util.Scanner;

public class SpyNumberInRange {

   // method to check the Spy number
   private static boolean isSpy(int number) {

      // declare variables
      int lastDigit = 0;
      int sum = 0;
      int product = 1;

      // iterate all digits of number
      while(number != 0) {

         // find last digit
         lastDigit = number % 10;

         // add last digit to sum
         sum = sum + lastDigit;

         // multiply last digit with product
         product = product * lastDigit;

         // remove last digit
         number = number / 10;
      }

      // compare sum and product
      if(sum == product)
         return true;

      return false;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int minRange = 0, maxRange = 0;

      //create Scanner class object to take input
      Scanner scan = new Scanner(System.in);
      System.out.print("Enter minimum value of range:");
      minRange = scan.nextInt();
      System.out.print("Enter maximum value of range:");
      maxRange = scan.nextInt();

      // loop
      System.out.println("The Spy number from "+ 
              minRange + " to "+ maxRange+" are: ");

      for(int i=minRange; i<=maxRange; i++) {
          // check number
          if(isSpy(i))
              System.out.print(i +" ");
      }

      // close Scanner class object
      scan.close();
  }
}

Outputtet fra de forskellige testcases:-

Indtast minimumsværdien for området:1
Indtast maximum værdi af interval:1000
Spionnummeret fra 1 til 1000 er:
1 2 3 4 5 6 7 8 9 22 123 132 213 231 312 321

Indtast minimumsværdien for området:1000
Indtast maximum værdi af interval:2000
Spionnummeret fra 1000 til 2000 er:
1124 1142 1214 1241 1412 1421


Java tag