您的位置:首页 > 编程语言 > Java开发

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

2015-08-19 17:59 627 查看
/*
运行结果与书上不符以,疑为书籍排版错误。
书上原题: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.232315809405593
20  3.1891847822775956
30  3.17384233719075
40  3.165979272843214
50  3.1611986129870484
60  3.1579849951686647
70  3.1556764623074756
80  3.153937862272616
90  3.1525813328751218
100 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: