-2

不太确定我哪里出错了。total我需要对系列的前 16个元素求和:1、3、9、27、81 Geometric1....

total方法打印一个值 7174454.0 但我应该得到 21523360。

public class Geometric1 implements Seq{

private double b;
public static double result = 0.0;

public Geometric1(double b) {
    this.b = b;
}


public double valAtIndex(int i) {
    // TODO Auto-generated method stub
    return Math.pow(b, i);
}

public static double total() {

    Seq s = new Geometric(3.0);

    for (int i = 0; i < 15; i++) {
        result += s.valAtIndex(i);
    }

    return result;
}

public static void main(String[] args) {

    System.out.println(total());}
}
4

2 回答 2

1

你很近。你只需要调整你的循环运行 16 次。

将结果初始化为0(您已多次编辑帖子),并按如下方式更改循环:

for (int i = 0; i <= 15; i++) {
    result += s.valAtIndex(i);
}
于 2012-08-29T00:44:21.363 回答
1

它应该是 i <= 15,而不是 < 15。这将解决您的问题。:)

7174454.0 明显小于 21523360。

于 2012-08-29T00:44:22.453 回答