For ループを使用した JAVA プログラムでのアームストロング数
アームストロング数とは何ですか?
アームストロング数では、個々の数字の累乗の合計は数自体に等しくなります。
言い換えれば、次の式が成り立つ。
xy..z = xn + yn+.....+ zn
nは数値の桁数です
例えば、これは3桁のアームストロング番号です
370 = 33 + 73 + o3 = 27 + 343 + 0 = 370
アームストロングの例 Numbers
0, 1, 4, 5, 9, 153, 371, 407, 8208, etc.
これをプログラムに書いてみましょう:
Java 数がアームストロング数であるかどうかをチェックするプログラム
//ChecktempNumber is Armstrong or not using while loop
package com.guru99;
public class ArmstrongNumber {
public static void main(String[] args) {
int inputArmstrongNumber = 153; //Input number to check armstrong
int tempNumber, digit, digitCubeSum = 0;
tempNumber = inputArmstrongNumber;
while (tempNumber != 0)
{
/* On each iteration, remainder is powered by thetempNumber of digits n
*/
System.out.println("Current Number is "+tempNumber);
digit =tempNumber % 10;
System.out.println("Current Digit is "+digit);
//sum of cubes of each digits is equal to thetempNumber itself
digitCubeSum = digitCubeSum + digit*digit*digit;
System.out.println("Current digitCubeSum is "+digitCubeSum);
tempNumber /= 10;
}
//check giventempNumber and digitCubeSum is equal to or not
if(digitCubeSum == inputArmstrongNumber)
System.out.println(inputArmstrongNumber + " is an Armstrong Number");
else
System.out.println(inputArmstrongNumber + " is not an Armstrong Number");
}
}
出力
Current Number is 153 Current Digit is 3 Current digitCubeSum is 27 Current Number is 15 Current Digit is 5 Current digitCubeSum is 152 Current Number is 1 Current Digit is 1 Current digitCubeSum is 153 153 is an Armstrong Number
Java 0 から 999 までのアームストロング数を印刷するプログラム
//ChecktempNumber is Armstrong or not using while loop
package com.guru99;
public class ArmstrongNumber {
public static void main(String[] args) {
int tempNumber, digit, digitCubeSum;
for (int inputArmstrongNumber = 0; inputArmstrongNumber < 1000; inputArmstrongNumber++) {
tempNumber = inputArmstrongNumber;
digitCubeSum = 0;
while (tempNumber != 0) {
/* On each iteration, remainder is powered by thetempNumber of digits n
*/
digit = tempNumber % 10;
//sum of cubes of each digits is equal to thetempNumber itself
digitCubeSum = digitCubeSum + digit * digit * digit;
tempNumber /= 10;
}
//check giventempNumber and digitCubeSum is equal to or not
if (digitCubeSum == inputArmstrongNumber)
System.out.println(inputArmstrongNumber + " is an Armstrong Number");
}
}
}
出力
0 is an Armstrong Number 1 is an Armstrong Number 153 is an Armstrong Number 370 is an Armstrong Number 371 is an Armstrong Number 407 is an Armstrong Number
