如何修复我的方法,以便显示基数2的所有幂而不是总和?

时间:2014-02-21 18:16:22

标签: java methods

public static String allPowers(long a, long b) {
        String powers = "";
        long number = a;

        while (number <= b) {

            powers = Math.pow(2, number) + " ";
            number++;
        }
        return powers;
    }

我正在尝试使用String 所以我得到2 ^ 2,2 ^ 3 ....... 2 ^ 6。 但相反,我得到一笔64 这总是错的 总和应该是124

2 个答案:

答案 0 :(得分:1)

您在每次迭代中覆盖powers。您应该使用powers += Math.pow(2, number) + " ";附加字符串或使用StringBuilder(首选,因为字符串连接每次迭代都会创建新对象)。

答案 1 :(得分:0)

使用StringBuilder对象:

public static String allPowers(long a, long b)
{
    StringBuilder powers = new StringBuilder();
    long number = a;
    while (number <= b)
    {
        powers.append(Math.pow(2, number)).append(" ");
        number++;
    }
    return powers.toString();
}