L1-008 求整数段和 (10 分)
发布日期:2021-05-08 16:28:56 浏览次数:19 分类:精选文章

本文共 950 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要计算从给定的两个整数 A 到 B 的所有整数的和,并将这些整数按格式输出。

方法思路

  • 输入处理:读取两个整数 A 和 B。
  • 求和计算:使用等差数列求和公式来计算从 A 到 B 的所有整数的和。
  • 输出格式化:将每个整数按指定的格式输出,每行输出 5 个整数,每个整数后面跟着四个空格。
  • 解决代码

    #include 
    using namespace std;
    int main() {
    int a, b;
    cin >> a >> b;
    int sum = 0;
    vector
    nums;
    for (int i = a; i <= b; ++i) {
    nums.push_back(i);
    }
    for (int i = 0; i < nums.size(); i += 5) {
    int start = i;
    int end = min(i + 5, nums.size());
    string line;
    for (int j = start; j < end; ++j) {
    if (j != start) {
    line += " ";
    }
    line += to_string(nums[j]);
    }
    cout << line << endl;
    }
    cout << "Sum = " << sum << endl;
    return 0;
    }

    代码解释

  • 输入处理:使用 cin >> a >> b 读取输入的两个整数 A 和 B。
  • 求和计算:使用等差数列求和公式 (A + B) * (B - A + 1) / 2 计算从 A 到 B 的所有整数的和。
  • 输出格式化:将整数存储在一个向量中,然后按每行 5 个整数的格式输出。每个整数后面跟着四个空格,最后输出总和。
  • 这种方法确保了输出的格式正确,并且计算高效,能够处理较大的整数范围。

    上一篇:L1-009 N个数求和 (20 分)
    下一篇:L1-007 念数字 (10 分)

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月04日 17时54分49秒