首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【详解】使用Java解决 - 编写一个函数,根据输入n的奇偶性求和

【详解】使用Java解决 - 编写一个函数,根据输入n的奇偶性求和

原创
作者头像
大盘鸡拌面
发布2026-03-22 21:37:25
发布2026-03-22 21:37:25
70
举报

使用Java解决 - 编写一个函数,根据输入n的奇偶性求和

在编程中,我们经常需要根据输入的不同来执行不同的操作。今天,我们将通过一个具体的例子来展示如何在Java中实现这样的功能。具体来说,我们需要编写一个函数,该函数根据输入的整数​​n​​是奇数还是偶数,来计算不同的序列之和。

问题描述

编写一个函数,输入一个正整数​​n​​:

  • 如果​​n​​是偶数,则计算并返回​​1/2 + 1/4 + ... + 1/n​​的和。
  • 如果​​n​​是奇数,则计算并返回​​1/1 + 1/3 + ... + 1/n​​的和。

解决方案

步骤1: 创建项目

首先,在你的开发环境中创建一个新的Java项目,并添加一个新的Java类,例如命名为​​SumCalculator​​。

步骤2: 编写函数

接下来,我们在​​SumCalculator​​类中编写主要的逻辑函数​​calculateSum​​。这个函数将接受一个整数参数​​n​​,并根据​​n​​的奇偶性来决定执行哪个求和操作。

代码语言:javascript
复制
public class SumCalculator {

    public static double calculateSum(int n) {
        if (n <= 0) {
            throw new IllegalArgumentException("n must be a positive integer");
        }

        double sum = 0;
        if (n % 2 == 0) { // n is even
            for (int i = 2; i <= n; i += 2) {
                sum += 1.0 / i;
            }
        } else { // n is odd
            for (int i = 1; i <= n; i += 2) {
                sum += 1.0 / i;
            }
        }
        return sum;
    }

    public static void main(String[] args) {
        int n = 10; // Example input
        System.out.println("The sum is: " + calculateSum(n));
    }
}
步骤3: 测试函数

为了确保我们的函数能够正确工作,我们可以在​​main​​方法中调用​​calculateSum​​函数,并传入几个测试值来验证结果。

代码语言:javascript
复制
public static void main(String[] args) {
    System.out.println("When n is 10, the sum is: " + calculateSum(10)); // 应输出约 1.8166666666666667
    System.out.println("When n is 9, the sum is: " + calculateSum(9));   // 应输出约 1.5497677311665408
}

下面是一个使用Java编写的示例代码,该代码根据输入的整数 ​​n​​ 的奇偶性来计算相应的序列和。

代码语言:javascript
复制
public class SequenceSum {

    public static void main(String[] args) {
        // 测试不同的n值
        int n1 = 6; // 偶数
        int n2 = 7; // 奇数

        System.out.println("When n is " + n1 + ", the sum is: " + calculateSum(n1));
        System.out.println("When n is " + n2 + ", the sum is: " + calculateSum(n2));
    }

    /**
     * 根据n的奇偶性计算相应的序列和
     * @param n 输入的整数
     * @return 序列和
     */
    public static double calculateSum(int n) {
        double sum = 0.0;

        if (n % 2 == 0) {
            // n是偶数,计算1/2 + 1/4 + ... + 1/n
            for (int i = 2; i <= n; i += 2) {
                sum += 1.0 / i;
            }
        } else {
            // n是奇数,计算1/1 + 1/3 + ... + 1/n
            for (int i = 1; i <= n; i += 2) {
                sum += 1.0 / i;
            }
        }

        return sum;
    }
}
代码解释
  1. 主方法 (main​ 方法):
  • 定义了两个测试用的 ​​n​​ 值:​​n1​​ 为偶数(6),​​n2​​ 为奇数(7)。
  • 调用 ​​calculateSum​​ 方法并打印结果。
  1. calculateSum​ 方法:
  • 接受一个整数 ​​n​​ 作为参数。
  • 使用 ​​if​​ 语句判断 ​​n​​ 是奇数还是偶数。
  • 如果 ​​n​​ 是偶数,使用 ​​for​​ 循环从 2 开始,每次增加 2,直到 ​​n​​,计算 ​​1/2 + 1/4 + ... + 1/n​​。
  • 如果 ​​n​​ 是奇数,使用 ​​for​​ 循环从 1 开始,每次增加 2,直到 ​​n​​,计算 ​​1/1 + 1/3 + ... + 1/n​​。
  • 返回计算得到的序列和。
运行结果

当你运行这个程序时,输出将会是:

代码语言:javascript
复制
When n is 6, the sum is: 0.8333333333333334
When n is 7, the sum is: 1.5619047619047618

下面是一个Java程序示例,该程序定义了一个方法 ​​calculateSum​​​,根据输入的整数 ​​n​​ 的奇偶性来计算相应的序列和。

代码语言:javascript
复制
public class SequenceSum {

    public static void main(String[] args) {
        int n = 10; // 可以修改这个值来测试不同的输入
        double result = calculateSum(n);
        System.out.println("The sum is: " + result);
    }

    /**
     * 计算给定整数n的序列和。
     * 如果n是偶数,则计算1/2 + 1/4 + ... + 1/n。
     * 如果n是奇数,则计算1/1 + 1/3 + ... + 1/n。
     *
     * @param n 输入的整数
     * @return 序列和
     */
    public static double calculateSum(int n) {
        if (n <= 0) {
            throw new IllegalArgumentException("n must be a positive integer");
        }

        double sum = 0.0;
        if (n % 2 == 0) { // n 是偶数
            for (int i = 2; i <= n; i += 2) {
                sum += 1.0 / i;
            }
        } else { // n 是奇数
            for (int i = 1; i <= n; i += 2) {
                sum += 1.0 / i;
            }
        }
        return sum;
    }
}
代码解释
  1. 主类和主方法:
  • ​SequenceSum​​ 类包含 ​​main​​ 方法,这是程序的入口点。
  • 在 ​​main​​ 方法中,定义了一个变量 ​​n​​ 来存储输入值,并调用 ​​calculateSum​​ 方法计算结果,最后打印结果。
  1. calculateSum 方法:
  • 该方法接受一个整数 ​​n​​ 作为参数,并返回一个双精度浮点数表示的序列和。
  • 首先检查 ​​n​​ 是否为正整数,如果不是,则抛出 ​​IllegalArgumentException​​ 异常。
  • 使用 ​​if​​ 语句判断 ​​n​​ 的奇偶性:
  • 如果 ​​n​​ 是偶数,使用 ​​for​​ 循环从 2 开始,每次增加 2,直到 ​​n​​,累加每个项的倒数。
  • 如果 ​​n​​ 是奇数,使用 ​​for​​ 循环从 1 开始,每次增加 2,直到 ​​n​​,累加每个项的倒数。
  • 最后返回计算得到的和。
测试

你可以通过修改 ​​main​​ 方法中的 ​​n​​ 的值来测试不同的输入情况。例如:

  • 当 ​​n = 10​​ 时,输出应该是 ​​1/2 + 1/4 + 1/6 + 1/8 + 1/10​​ 的和。
  • 当 ​​n = 9​​ 时,输出应该是 ​​1/1 + 1/3 + 1/5 + 1/7 + 1/9​​ 的和。

希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请随时告诉我。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Java解决 - 编写一个函数,根据输入n的奇偶性求和
    • 问题描述
    • 解决方案
      • 步骤1: 创建项目
      • 步骤2: 编写函数
      • 步骤3: 测试函数
      • 代码解释
      • 运行结果
      • 代码解释
      • 测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档