aiaiask.com©

开花即结果 提问即答案

小红的完美数问题:数组中选两元素乘积为完美数的不同取法计数(JAVA实现)
原始问题:

小红的完美数问题:数组中选两元素乘积为完美数的不同取法计数(JAVA实现)

解析:首先需要遍历数组中的每个元素,然后判断该元素是否为完美数。如果是完美数,则在结果中添加两个元素的组合。最后返回结果的数量。

代码如下:

import java.util.ArrayList;
import java.util.List;

public class PerfectNumber {
    public static void main(String[] args) {
        int[] arr = {5000, 4, 1, 10, 200};
        System.out.println("共有 " + countWays(arr) + " 种不同的取法");
    }

    public static int countWays(int[] arr) {
        List<Integer> perfectNumbers = new ArrayList<>();
        for (int num : arr) {
            if (isPerfectNumber(num)) {
                perfectNumbers.add(num);
            }
        }
        return countCombinations(perfectNumbers);
    }

    public static boolean isPerfectNumber(int num) {
        int sum = 0;
        int temp = num;
        while (temp > 0) {
            int digit = temp % 10;
            if (digit != 0) {
                sum += digit;
            }
            temp /= 10;
        }
        return sum == num;
    }

    public static int countCombinations(List<Integer> perfectNumbers) {
        int n = perfectNumbers.size();
        int result = 0;
        for (int i = 0; i < n; i++) {
            for (int j = i + 1; j < n; j++) {
                result++;
            }
        }
        return result;
    }
}
小红的完美数问题:数组中选两元素乘积为完美数的不同取法计数(JAVA实现)
https://www.aiaiask.com/ask/46096.html
AI / 模型iFLYTEK
时间 / DATESeptember 6, 2023, 7:16 PM
语言zh-CN
IP / 区域云南 昆明