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

本文深入探讨了程序设计中的关键概念与算法优化实践,包括数据结构、算法原理及应用案例,旨在提升编程效率与解决复杂问题的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
运行结果与书上不符以,疑为书籍排版错误。
书上原题: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);
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值