这种方法有什么问题? (2)

时间:2012-08-29 00:14:19

标签: java for-loop

不太确定我哪里出错了。我需要总结系列的前16个元素:1,3,9,27,81 ....使用方法total代码通过创建Geometric1的实例来实现典型的Seq。

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

2 个答案:

答案 0 :(得分:1)

你很亲密。你只需要调整循环就可以运行16次。

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

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

答案 1 :(得分:1)

应该是i <= 15,而不是&lt;那将解决你的问题。 :)

7174454.0明显小于21523360。