题目描述
给定两个整数 A 和 B,输出从 A 到 B 的所有整数之和。
输入输出格式
输入:两个整数 A 和 B(-10000 <= A, B <= 10000)
输出:
- 从 A 到 B(包含 A 和 B)的所有整数
- 最后一行输出这些整数的和
样例
输入
-1 10
输出
-1 -2 -3 -4 -5 -6 -7 -8 -9 -10
Sum = -55
解题思路
- 读取两个整数 A 和 B
- 确保 A <= B(如果 A > B,则交换)
- 遍历输出从 A 到 B 的所有整数
- 计算并输出总和
代码实现
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
if (a > b) {
int t = a;
a = b;
b = t;
}
int sum = 0;
for (int i = a; i <= b; i++) {
System.out.print(i);
if (i < b) System.out.print(" ");
sum += i;
}
System.out.println();
System.out.println("Sum = " + sum);
}
}
Python
a, b = map(int, input().split())
if a > b:
a, b = b, a
nums = list(range(a, b + 1))
print(" ".join(map(str, nums)))
print(f"Sum = {sum(nums)}")
复杂度分析
- 时间复杂度:O(|b-a|)
- 空间复杂度:O(|b-a|)
总结
本题考察循环和累加。核心是处理 A > B 的情况,以及正确计算区间和。