有一个三位数,他的各个位数的阶乘相加得到这个数

有一个三位数,他的各个位数的阶乘相加得到这个数

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;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41957626/article/details/131444863