小编Pro*_*usH的帖子

使用数组列表获取错误的输出

面临的挑战是找到一个数字,该数字的各个数字乘以连续增加的幂并相加,等于初始数字。

例如:取89,将其分为8和9,然后 8^1 + 9^2 = 89

static List<Integer> sumDigPow(int a, int b) { 
        List<Integer> eureka = new ArrayList<Integer>(0);
        List<String> digits = new ArrayList<String>();
        String num;
        int sum = 0, multi;

    for (int i=a; i<=b; i++) {
        num = String.valueOf(i);
        digits.add(num);

        for (int j=0; j<digits.size(); j++) {
                multi = (int)Math.pow(Integer.parseInt(digits.get(j)), j+1);
                sum += multi;
        }

        if (sum == i) eureka.add(i);

        sum = 0;
        digits.clear();
    }

    return eureka;
}
Run Code Online (Sandbox Code Playgroud)

输入1和100(范围)时,输出应为[1、2、3、4、5、6、7、8、9、89],但是我得到了所有数字[1, 2 ... 100]。

我是最近才开始学习Java的,似乎无法在代码中找到问题。任何提示将不胜感激。

java arrays string algorithm arraylist

13
推荐指数
2
解决办法
253
查看次数

标签 统计

algorithm ×1

arraylist ×1

arrays ×1

java ×1

string ×1