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