编写一种方法来计算以下系列

时间:2015-11-16 22:37:55

标签: java methods

我需要帮助完成学校作业。我真的陷入困境,并试图在网上多个地方搜索无济于事。

嗯,这是问题。

  • (Sum series)编写方法
  • public static double m(int i)
  • 计算以下系列:

编写显示下表的测试程序:

i                                                    m(i)
__________________________________
1                                                   0.5000
2                                                   1.1667
...
19                                                  16.4023
20                                                  17.3546

我已完成方法,但我不知道如何打印表格。我问我的老师,显然,方法本身并不打算打印表格,这让我陷入了这个任务中。我只设法打印表格顶部的标签。

到目前为止,这是我的代码:

public class Assignment18 {
    public static void main(String args[]) {

        double value = 0;
        int i;
        System.out.println("i" + "\t\t" + "m(i)");
        System.out.println("-------------------");
    }

    public static double m(int i) {
        double sum = 0;
        for(i = 0; i < 21; i++)
            sum += (double) i / (i + 1); 
        System.out.println(i + "\t\t" + sum + "\n");
        return sum; 
    }
}    

有谁能告诉我我做错了什么以及如何正确打印表格?谢谢。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

m(i)这样的函数应返回您要求计算的值。如果函数打印出该值,则称为副作用。

然后,您可以通过向m()询问值来打印表格的不同部分。

System.out.println("i" + "\t\t" + "m(i)");
System.out.println("-------------------");

for (int i = 0; i < 20; i++) {
    System.out.println(""+ i + "\t\t" + m(i) );
}

答案 1 :(得分:0)

尝试使用它的功能

public static void main(String args[]) {
        double value = 0;
        int i;
        System.out.println("i" + "\t\t" + "m(i)");
        System.out.println("-------------------"); 
        m(7);
    }

    public static void m(int i) {
        double sum = 0;
        for(i = 0; i < 21; i++){
            sum += (double) i / (i + 1); 
        System.out.println(i + "\t\t" + sum + "\n");
        }
    }

答案 2 :(得分:-1)

狗,你需要的只是一些牙箍:

public static double m(int i) 
{
    double sum = 0;
    for(i = 0; i < 21; i++)
    {
        sum += (double) i / (i + 1); 
        System.out.println(i + "\t\t" + sum + "\n");
    }
    return sum; 
}