Introduction to Java Programming编程题5.14<计算数列>

来源:互联网 发布:linux怎么退出全屏 编辑:程序博客网 时间:2024/04/30 12:31
/*运行结果与书上不符以,疑为书籍排版错误。书上原题:m(i)=4(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 +……+ 1/(2i-1) - 1/(2i+1))若i = 10,展开应为:m(i)=4(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - 1/15 + 1/17 - 1/19 + 1/21)i   m(i)10  3.23231580940559320  3.189184782277595630  3.1738423371907540  3.16597927284321450  3.161198612987048460  3.157984995168664770  3.155676462307475680  3.15393786227261690  3.1525813328751218100 3.1514934010709927*/import java.util.Scanner;public class ComputeOrderedSeries {  public static void main(String[] args) {    Scanner input = new Scanner(System.in);    System.out.print("Enter a digit number: ");    int number = input.nextInt();    displaySumOrderedSeries(number);  }  public static void displaySumOrderedSeries(int n) {    System.out.println("i\tm(i)");    for (int i = 10; i <= n; i += 10)      displaySumBody(i, sumOrderedSeries(i));  }  public static double sumOrderedSeries(int n) {    double m3 = 0, m5 = 0;    for (int i = 3; i <= 2 * n - 1; i += 2) {      m3 += 1.0 / i;      i += 2;      m5 += 1.0 / i;    }    return (1.0 - m3 + m5) * 4.0;  }  public static void displaySumBody(int i, double mi) {    System.out.println(i + "\t" + mi);  }}
0 0