PAT 天梯赛 L1-008. 求整数段和 【水】

本文提供了一道来自PATest平台的L1-008题目的解决方案,采用C++语言实现。代码中展示了如何使用标准输入输出进行数据交互,并通过循环来计算指定范围内的整数之和。

题目链接

https://www.patest.cn/contests/gplt/L1-008

AC代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <cstdlib>
#include <ctype.h>
#include <numeric>
#include <sstream>
using namespace std;

typedef long long LL;
const double PI = 3.14159265358979323846264338327;
const double E = 2.718281828459;
const double eps = 1e-6;
const int MAXN = 0x3f3f3f3f;
const int MINN = 0xc0c0c0c0;
const int maxn = 1e5 + 5;
const int MOD = 1e9 + 7;

int main()
{
    int a, b;
    cin >> a >> b;
    int sum = 0;
    int vis;
    for (vis = 1; a <= b; a++, vis++)
    {
        printf("%5d", a);
        sum += a;
        if (vis % 5 == 0)
            cout << endl;
    }
    if ((vis - 1) % 5 != 0)
        cout << endl;
    printf("Sum = %d\n", sum);
}
### 关于L1-008整数段测试点2的解决方案 对于PAT中的题目L1-008——整数段,当处理特定测试案例时,尤其是针对测试点2的情况,需注意边界条件以及输入数据范围。虽然提供的引用材料并未直接涉及此题目的解答[^1],但从编程竞赛的一般解法出发可以推测合理的解决路径。 #### 输入输出说明 本题要读取两个正整数`A``B`作为区间端点(`A ≤ B`),计算并输出闭区间[A,B]内所有整数之S,并统计这些整数中有多少个能被5整除的数量T。如果给定的起始位置大于结束位置,则应交换两者的位置再做上述运算。 为了确保程序能够通过测试点2,下面提供了一种可能的实现方式: ```cpp #include <iostream> using namespace std; int main(){ long long a, b; cin >> a >> b; // 如果起点大于终点则交换二者顺序 if(a > b){ swap(a,b); } long long sum = ((b-a+1)*(a+b))/2; // 计算总公式:(首项+末项)*项数/2 // 统计可被5整除的数目 int count = (b / 5) - ((a-1)/5); cout << sum << " " << count << endl; } ``` 这段代码首先接收用户输入的两个数值,判断是否需要调整它们之间的相对大小;接着利用等差数列公式快速得出指定范围内所有整数相加之;最后通过简单的数学方法来确定有多少个数字是可以被5整除的。 #### 处理特殊情况 值得注意的是,在实际比赛中遇到类似问题时还需要考虑一些特殊情形,比如极端的大数情况下的溢出保护措施,或是负数参与运算的可能性等问题。不过依据题目描述来看,这里假设所有的输入均为合法有效的正整数。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值