Java案例怎么实现求和运算?

wen java案例 14

本文目录导读:

Java案例怎么实现求和运算?

  1. 基础数字求和
  2. 数组求和
  3. 循环求和
  4. 方法封装求和
  5. 实用求和案例
  6. 进阶:工具类封装
  7. 注意事项

我来为你介绍几种Java实现求和运算的常见案例,从基础到进阶:

基础数字求和

1 两个数求和

public class BasicSum {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int sum = a + b;
        System.out.println(a + " + " + b + " = " + sum);
    }
}

2 用户输入求和

import java.util.Scanner;
public class InputSum {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第一个数字:");
        int num1 = scanner.nextInt();
        System.out.print("请输入第二个数字:");
        int num2 = scanner.nextInt();
        int sum = num1 + num2;
        System.out.println("两数之和为:" + sum);
        scanner.close();
    }
}

数组求和

1 基础数组求和

public class ArraySum {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int sum = 0;
        // 使用增强for循环
        for (int num : numbers) {
            sum += num;
        }
        System.out.println("数组元素之和为:" + sum);
    }
}

2 使用Stream API求和

import java.util.Arrays;
public class StreamSum {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        // 使用Stream API
        int sum = Arrays.stream(numbers).sum();
        System.out.println("数组元素之和为:" + sum);
    }
}

循环求和

1 1到100求和

public class LoopSum {
    public static void main(String[] args) {
        // 求1到100的和
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println("1到100的和为:" + sum);
        // 使用公式验证
        int formulaSum = 100 * (100 + 1) / 2;
        System.out.println("使用公式验证:" + formulaSum);
    }
}

2 求偶数和

public class EvenSum {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                sum += i;
            }
        }
        System.out.println("1到100的偶数和为:" + sum);
    }
}

方法封装求和

1 定义求和方法

public class MethodSum {
    // 求两个数的和
    public static int sum(int a, int b) {
        return a + b;
    }
    // 求数组的和
    public static int sumArray(int[] arr) {
        int sum = 0;
        for (int num : arr) {
            sum += num;
        }
        return sum;
    }
    // 可变参数求和
    public static int sumVarArgs(int... numbers) {
        int sum = 0;
        for (int num : numbers) {
            sum += num;
        }
        return sum;
    }
    public static void main(String[] args) {
        System.out.println("两个数之和:" + sum(10, 20));
        System.out.println("数组之和:" + sumArray(new int[]{1, 2, 3, 4}));
        System.out.println("可变参数之和:" + sumVarArgs(1, 2, 3, 4, 5));
    }
}

实用求和案例

1 学生成绩求和

import java.util.ArrayList;
import java.util.List;
public class StudentScoreSum {
    public static void main(String[] args) {
        List<Integer> scores = new ArrayList<>();
        scores.add(85);
        scores.add(92);
        scores.add(78);
        scores.add(95);
        scores.add(88);
        // 传统方式
        int sum = 0;
        for (int score : scores) {
            sum += score;
        }
        // 使用Stream API
        int sumStream = scores.stream().mapToInt(Integer::intValue).sum();
        System.out.println("总成绩:" + sum);
        System.out.println("平均分:" + (double)sum / scores.size());
    }
}

2 货币求和(处理浮点数)

import java.math.BigDecimal;
public class MoneySum {
    public static void main(String[] args) {
        // 使用BigDecimal进行精确计算
        BigDecimal price1 = new BigDecimal("19.99");
        BigDecimal price2 = new BigDecimal("29.99");
        BigDecimal price3 = new BigDecimal("9.99");
        BigDecimal total = price1.add(price2).add(price3);
        System.out.println("商品总价:" + total + "元");
    }
}

进阶:工具类封装

public class SumUtils {
    // 防止实例化
    private SumUtils() {}
    // 整数求和
    public static int sum(int... nums) {
        int result = 0;
        for (int num : nums) {
            result += num;
        }
        return result;
    }
    // 浮点数求和
    public static double sum(double... nums) {
        double result = 0;
        for (double num : nums) {
            result += num;
        }
        return result;
    }
    // 使用BigDecimal精确求和
    public static BigDecimal sum(BigDecimal... nums) {
        BigDecimal result = BigDecimal.ZERO;
        for (BigDecimal num : nums) {
            result = result.add(num);
        }
        return result;
    }
}
// 使用示例
public class TestSumUtils {
    public static void main(String[] args) {
        System.out.println(SumUtils.sum(1, 2, 3, 4, 5));
        System.out.println(SumUtils.sum(1.5, 2.3, 3.7));
        BigDecimal result = SumUtils.sum(
            new BigDecimal("10.50"),
            new BigDecimal("20.30")
        );
        System.out.println("精确求和:" + result);
    }
}

注意事项

  1. 数据类型选择:整数用intlong,小数用doubleBigDecimal
  2. 溢出问题:大数相加时要考虑数据类型的范围
  3. 精度问题:涉及�金额计算时使用BigDecimal
  4. 输入验证:处理用户输入时要注意异常处理

根据具体的应用场景选择合适的求和方法,代码会更具可读性和可靠性。

抱歉,评论功能暂时关闭!