Nombre Disarium en Java
Dans cet article, nous allons développer un programme Java pour vérifier si le numéro donné est un numéro Disarium ou non ? Nous développerons également un programme Java pour trouver tous les numéros Disarium dans la plage donnée.
Un nombre dont la somme de ses chiffres alimentés par leur position respective est égale au nombre d'origine est appelé nombre disarium. Des exemples de numéros de disarium sont- 135, 175, 518 et e.tc.
Nombre =89 => 8
1
+ 9
2
=8 + 81 =89 Donc, 89 est un nombre disarié. Number
=135 => 1
1
+ 3
2
+ 5
3
=1 + 9 + 125 =135 Donc 135 est un nombre disarié. Nombre =518 => 5
1
+ 1
2
+ 8
3
=5 + 1+ 512 =518 Donc, 518 est un nombre disarié.
Procédure pour développer une méthode pour vérifier que le nombre donné est un nombre disarié ou non,
1) Prendre un nombre
2) Stocker une copie du nombre dans une variable temporaire
3) Déclarer un sum
variable et initialisez-la avec 0
4) Déclarer une variable digits
pour stocker le nombre de chiffres dans le nombre donné
5) Trouver le nombre de chiffres dans le nombre donné et stocker les résultats dans le digits
variable
6) Trouvez le dernier chiffre du nombre
7) Calculez lastDigit^digits
et ajoutez-le à la variable somme
8) Supprimez le dernier chiffre du nombre
9) Diminuez digits
variable par 1
10) Répétez 6 à 9 étapes jusqu'à ce que le nombre devienne 0.
11) Comparez sum
et le original number
. si les deux sont identiques, le nombre donné est un nombre disarium, sinon le nombre donné n'est pas un nombre disarium.
Programme
import java.util.Scanner;
public class DisariumNumber {
// method to check the Disarium number
public static boolean isDisarium(int number){
// declare variables
int n = number; // temp variable
int sum = 0;
int digits = 0; // number of digits
int lastDigit = 0;
// calculate number of digits
digits = countDigits(number);
// iterate all digits of number
while(n!=0) {
// find last digit
lastDigit = n % 10;
// add result into sum
sum += (int)Math.pow(lastDigit, digits);
// remove last digit
n /= 10;
// decrease digits variable by 1
digits--;
}
if(sum == number)
return true;
return false;
}
// method to count number of digits
public static int countDigits(int number) {
int number_of_digits = 0;
while(number != 0) {
number_of_digits++;
// remove last digit
number /= 10;
}
return number_of_digits;
}
// 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 Disarium number or not
result = isDisarium(number);
// display result
if(result)
System.out.println(number +
" is a Disarium number.");
else
System.out.println(number +
" is not a Disarium number.");
// close Scanner class object
scan.close();
}
}
La sortie pour différents cas de test est :-
Entrez un nombre entier ::135
135 est un nombre Disarium.
Entrez un nombre entier ::140
140 n'est pas un nombre Disarium.
Entrez un nombre entier ::175
175 est un nombre Disarium.
Voir également :- Numéro spécial, Numéro magique, Numéro Armstrong, Numéro parfait, Numéro maléfique, Numéro espion, Numéro ensoleillé en Java
La méthode isDisarium(-) peut également être développée en utilisant la boucle for. La méthode ci-dessous est développée en utilisant la boucle for.
public static boolean isDisarium(int number) {
// declare variables
int n = number; // temp variable
int sum = 0;
// count number of digits
int digits = countDigits(number);
// iterate through all digits of number
for(int i=digits; n!=0; n/=10, i--) {
// find last digit and
// add into the sum variable
sum += (int)Math.pow((n%10),i);
}
// compare sum and product
if(sum == number)
return true;
return false;
}
Programme Java pour trouver tous les numéros Disarium dans la plage donnée
import java.util.Scanner;
public class DisariumNumberInRange {
// method to check the Disarium number
public static boolean isDisarium(int number) {
// declare variables
int n = number; // temp variable
int sum = 0;
// count number of digits
int digits = countDigits(number);
// iterate through all digits of number
for(int i=digits; n!=0; n/=10, i--) {
// find last digit and
// add into the sum variable
sum += (int)Math.pow((n%10),i);
}
// compare sum and product
if(sum == number)
return true;
return false;
}
public static int countDigits(int number) {
int number_of_digits = 0;
while(number != 0) {
number_of_digits++;
// remove last digit
number /= 10;
}
return number_of_digits;
}
// 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 Disarium number from "+
minRange + " to "+ maxRange+" are: ");
for(int i=minRange; i<=maxRange; i++) {
// check number
if(isDisarium(i))
System.out.print(i +" ");
}
// close Scanner class object
scan.close();
}
}
La sortie pour les différents cas de test est :-
Entrez minimum
valeur de la plage : 1
Entrez maximum
value of range :1000
Le nombre Disarium de 1 à 1000 est :1 2 3 4 5 6 7 8 9 89 135 175 518 598
Entrez minimum
valeur de la plage :1000
Entrez maximum
valeur de la plage :10000
Le nombre Disarium de 1000 à 10000 est :1306 1676 2427