有一个三位数,他的各个位数的阶乘相加得到这个数
1.描述
有一个三位数,它的各个位数的阶乘相加得到这个数
2.代码
输入数据
依次对个位,十位和百位进行拆解计算阶乘
然后相加看看是不是和原来的数据是相等
public class Mian4 {
public static void main(String[] args) {
int number = 145; // 替换为您要验证的三位数
int sumOfFactorials = calculateSumOfFactorials(number);
if (sumOfFactorials == number) {
System.out.println("给定的数 " + number + " 的各位数阶乘之和等于该数本身!");
} else {
System.out.println("给定的数 " + number + " 的各位数阶乘之和不等于该数本身!");
}
}
//计算该数的个位、十位和百位的阶乘之和
private static int calculateSumOfFactorials(int number) {
int sum = 0;
int digit = number % 10;//个位
sum += factorial(digit);
digit = (number / 10) % 10;//10位
sum += factorial(digit);
digit = number / 100;//百位
sum += factorial(digit);
return sum; //返回和
}
//计算阶乘
private static int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
}
int result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
}