English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce programme, vous allez apprendre à vérifier si un nombre donné est un nombre d'Armstrong. Vous allez apprendre à le faire en utilisant des boucles for et while en Java.
Un nombre entier positif est appelé un nombre d'Armstrong de degré n si
abcd... = an + bn + cn + dn + ...
Pour3un nombre d'Armstrong à chiffres, la somme des cubes de chaque chiffre est égale au nombre lui-même. Par exemple :
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 est un nombre d'Armstrong.
public class Armstrong { public static void main(String[] args) { int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) { remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; } if (result == number) System.out.println(number + " est un nombre d'Armstrong."); else System.out.println(number + " n'est pas un nombre d'Armstrong."); } }
When running the program, the output is:
371 est un nombre d'Armstrong.
D'abord, la valeur du nombre (number) est stockée dans une autre variable entière originalNumber. Cela est dû au fait que nous devons comparer la valeur finale avec la valeur originale.
Ensuite, utilisez une boucle while pour parcourir originalNumber, jusqu'à ce qu'il soit égal à 0.
Dans chaque itération, le dernier chiffre de num est stocké dans remainder.
Ensuite, utilisez la fonction Math.pow() pour ajouter remainder3(数字位数)et ajoutez à result.
Puis, divisez par10Ensuite, supprimez le dernier chiffre de originalNumber.
Enfin, comparez result et number. Si ils sont égaux, alors c'est un nombre d'Armstrong. Sinon, ce n'est pas.
public class Armstrong { public static void main(String[] args) { int number = 1634originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (; originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (; originalNumber != 0; originalNumber /= 10) { remainder = originalNumber % 10; result += Math.pow(remainder, n); } if (result == number) System.out.println(number + "It is an Armstrong number."); else System.out.println(number + "It is not an Armstrong number."); } }
When running the program, the output is:
1634 is an Armstrong number.
In this program, we did not use a while loop, but instead used two for loops.
The first for loop is used to calculate the number of digits in the number. It is a compressed form of the following:
for (; originalNumber != 0; originalNumber /= 10) { n++; }
Then, the second for loop calculates result, where the remainder is raised to the power of the number n in each iteration.
Access this page to learn howDisplay all Armstrong numbers between two intervals。