logo

Número espia a Java

En aquest apartat, aprendrem què és un número espia i també crear Programes Java per comprovar si el número donat és Espia o no. El programa de números espia es demana sovint a Java prova de codificació.

Número d'espia

Un nombre enter positiu s'anomena nombre espia si el suma i producte dels seus dígits són iguals. En altres paraules, un nombre la suma i el producte de tots els dígits són iguals s'anomena a número espia .

Exemple de número d'espia

Agafem el número 1124 i comprovem si el número és un espia o no. Primer, el dividirem en dígits (1, 1, 2, 4). Després d'això, trobeu la suma i el producte de tots els dígits.

Suma =1+1+2+4= 8

abstracció en java

Producte =1*1*2*4= 8

Observem que la suma i el producte de les xifres són iguals. Per tant, 1124 és un número espia.

preguntes d'entrevista java

De la mateixa manera, també podem comprovar altres números. Alguns altres números espia són 22, 123, 132, etc.

Número espia a Java

Passos per trobar el número espia

  1. Llegir o inicialitzar un número ( n ) que voleu comprovar.
  2. Declarar dues variables suma i producte per emmagatzemar la suma i el producte de dígits. Inicialitzar suma amb 0 i producte amb 1 .
  3. Troba el darrer dígit (n%10) del nombre donat mitjançant l'operador mòdul.
  4. Afegeixl'últim dígit a la suma variable.Multiplicarl'últim dígit amb la variable producte.Divideixel número donat (n) per 10. Elimina l'últim dígit.
  5. Repetiu els passos 3 a 6 fins que el nombre donat (n) es converteixi en 0.
  6. Si la variable suma i producte tenen el mateix valor, aleshores el nombre donat (n) és a espia nombre , sinó no és un número espia.

Implementem els passos anteriors en un programa Java.

Programa de Java número espía

SpyNumberExample1.java

10 d'1 milió
 import java.util.Scanner; public class SpyNumberExample1 { public static void main(String args[]) { int num, product=1, sum=0, lastdigit; // create object of scanner Scanner sc = new Scanner(System.in); System.out.print('Enter the number to check: ' ); //reads an integer from the user and stores it in the variable num num=sc.nextInt(); //executes untill the condition becomes false while(num>0) { //finds the last digit of the number lastdigit=num%10; //adds last digit to the variable sum sum=sum+lastdigit; //calculates the product product=product*lastdigit; //removes the last digit from the given number num=num/10; } //compares the sum and product if(sum==product) //prints if the above condition returns true System.out.println('The given number is a spy number.'); else //prints if the above condition returns false System.out.println('The given number is not a spy number.'); } } 

Sortida 1:

 Enter the number to check: 123 The given number is a spy number. 

Sortida 2:

 Enter the number to check: 456 The given number is a not spy number. 

SpyNumberExample2.java

 import java.util.Scanner; public class SpyNumberExample2 { //method to check the Spy number private static boolean isSpyNumber(int number) { int lastDigit = 0; int sum = 0; int product = 1; //executes until the condition returns true while(number != 0) { //determines the last digit of the given number lastDigit = number % 10; //adds the last digit to the variable sum sum = sum + lastDigit; //multiply last digit with product product = product * lastDigit; //removes the last digit of the given number number = number / 10; } //compares the variable sum with product and returns the result accordingly if(sum == product) return true; return false; } //driver code public static void main(String args[]) { int lowerRange = 0, upperRange = 0; Scanner sc = new Scanner(System.in); System.out.print(&apos;Enter the lower range: &apos;); //reads lower range lowerRange = sc.nextInt(); System.out.print(&apos;Enter upper range: &apos;); //reads the upper range upperRange = sc.nextInt(); System.out.println(&apos;The Spy numbers between &apos;+ lowerRange + &apos; to &apos;+ upperRange+&apos; are: &apos;); for(int i=lowerRange; i<=upperrange; i++) { calling user-defined function that checks if the given number is spy or not if(isspynumber(i)) prints all numbers system.out.print(i +' '); } < pre> <p> <strong>Output:</strong> </p> <pre> Enter the lower range: 1 Enter upper range: 10000 The Spy numbers between 1 to 10000 are: 1 2 3 4 5 6 7 8 9 22 123 132 213 231 312 321 1124 1142 1214 1241 1412 1421 2114 2141 2411 4112 4121 4211 </pre> <hr></=upperrange;>