题目

从标准输入读入一个正整数 n,计算并输出 1 到 n 之间所有偶数的和。

输入格式:一行输入一个正整数 n。

输出格式:输出一个整数表示所有偶数之和,末尾换行。

数据范围与约定:1 ≤ n ≤ 108。

思路与算法

1. 偶数判定与步长优化
方法一:遍历 1 到 n,通过 i % 2 == 0 判定偶数后累加;
方法二(更优):直接以偶数 2 为起点,循环步长设为 2(i += 2),循环次数减半,效率更高。

2. 溢出防范
偶数累加和的增长速度与平方同阶,大输入下同样必须使用 long 保存累加值。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        // 步长设为 2,直接累加所有偶数,循环次数减半
        long sum = 0;
        for (int i = 2; i <= n; i += 2) {
            sum += i;
        }

        System.out.println(sum);
    }
}

运行示例

输入:

6

输出:

12