当前位置: 首页 > news >正文

PTA基础编程题目集 7-16求符合给定条件的整数集(C++语言实现)

摘要:本文是PTA编程题"求整数段和"的题解,涵盖题目描述、输入输出格式及C++语言实现,展示for循环遍历、累加求和与格式化输出方法。

题目描述

给定两个整数A和B,输出从A到B的所有整数以及这些数的和。

输入格式:

输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。

输出格式:

首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。

输入样例:

-3 8

输出样例:

-3 -2 -1 0 1 2 3 4 5 6 7 8 Sum = 30

解题思路

核心问题分析

本题是一个典型的循环遍历与累加求和问题。需要完成三个核心任务:

  1. 顺序遍历输出:从整数A到整数B(包含A和B)依次输出每个整数
  2. 格式化排版:每个数字占5字符宽度、右对齐,每5个数字换一行
  3. 累加求和:计算区间内所有整数的总和,按指定格式输出

算法原理说明

使用for循环结构实现区间遍历,结合计数器与累加器实现格式化和求和:

  1. 读取区间端点A和B
  2. 使用for循环从i=A遍历到i=B:
    • 使用setw(5)设置输出宽度为5个字符,右对齐输出当前i
    • 将当前i累加到sum总和中
    • 计数器count加1,每满5个输出一个换行
  3. 循环结束后,若最后一行不足5个数字,补一个换行符
  4. 按"Sum = X"格式输出总和

具体计算步骤

  1. 输入整数A和B(保证A ≤ B)
  2. 初始化:sum=0(总和),count=0(计数器)
  3. 循环变量i从A到B:
    • 输出 setw(5) << i(5字符宽右对齐)
    • sum = sum + i(累加)
    • count = count + 1(计数)
    • 若 count % 5 == 0:输出换行(每行5个)
  4. 循环结束后,若 count % 5 != 0:补一个换行(保证最后一行完整)
  5. 输出 "Sum = " << sum << endl

验证样例:

  • 输入A=-3,B=8
  • 遍历序列:-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8(共12个数)
  • 格式化输出:
    • 第1行(1-5个):-3 -2 -1 0 1
    • 第2行(6-10个):2 3 4 5 6
    • 第3行(11-12个):7 8
  • 求和:-3-2-1+0+1+2+3+4+5+6+7+8 = (-6)+(1+2+3+4+5+6+7+8) = -6+36 = 30 ✓

代码部分实现

#include<iostream>#include<iomanip>usingnamespacestd;intmain(void){intA,B,i,sum=0,count=0;cin>>A>>B;for(i=A;i<=B;i++){cout<<setw(5)<<i;sum+=i;count++;if(count%5==0){cout<<endl;}}if(count%5!=0){cout<<endl;}cout<<"Sum = "<<sum<<endl;return0;}

代码流程说明

  1. 头文件引入与命名空间声明

    • #include <iostream>:引入标准输入输出流头文件
    • #include <iomanip>:引入输入输出格式控制头文件,提供setw()等格式化函数
    • using namespace std;:使用std命名空间
  2. 主函数入口

    • int main(void):程序主函数入口
  3. 变量定义与初始化

    • int A, B:存储区间端点A(起始整数)和B(结束整数)
    • int i:for循环的遍历变量
    • int sum = 0:累加器,存储所有整数的总和,初始值为0
    • int count = 0:计数器,统计已输出的整数个数,初始值为0
  4. 数据输入

    • cin >> A >> B;:读取两个整数A和B
  5. for循环遍历与处理

    • for (i = A; i <= B; i++)
      • 初始化:i = A(从起始整数开始)
      • 循环条件:i <= B(直到超过结束整数停止)
      • 更新:i++(每次加1)
    • 循环体内操作:
      • cout << setw(5) << i;:设置输出宽度为5个字符,右对齐输出当前整数i
        • setw(5)只对紧接着的一个输出有效,默认右对齐
      • sum += i;:将当前i累加到sum中(sum = sum + i)
      • count++;:计数器count加1
      • if (count % 5 == 0):判断是否已输出5个整数
        • cout << endl;:每满5个输出换行符
  6. 补充最后一行换行

    • if (count % 5 != 0):如果最后一行不足5个数字(即总数不是5的倍数)
      • cout << endl;:补一个换行符,确保最后一行结束后换行
  7. 输出总和

    • cout << "Sum = " << sum << endl;:按指定格式输出所有整数的总和
  8. 程序结束

    • return 0;:返回0,程序正常退出

代码流程图

否 循环结束

开始

引入头文件iostream和iomanip

定义变量 A, B, i, sum=0, count=0

输入 A 和 B

for循环: i从A到B
每次i++

i <= B?

输出 setw(5) << i

sum += i 累加

count++ 计数加1

count % 5 == 0?

输出换行 endl

本轮循环结束

i++ 回到循环判断

count % 5 != 0?

输出换行 补最后一行

输出 Sum = sum

程序结束

解题流程图

否 遍历完毕

是 继续遍历

是 满5个

否 未满

开始

读取区间端点 A 和 B

初始化 sum=0, count=0

i = A 从起始数开始

i <= B?

最后一行不满5个?

输出i占5字符宽右对齐

sum = sum + i 累加求和

count = count + 1 计数

count 是 5 的倍数?

输出换行

i = i + 1 下一个数

补一个换行

输出 Sum = 总和

结束

http://www.jsqmd.com/news/1340361/

相关文章:

  • AI大模型编程能力评测:从Prompt设计到实战对比的完整框架
  • EKF-SLAM从完全发散到厘米级精度:一个SLAM系统的完整调试与优化实战
  • 成本核算从“糊涂账“到“显微镜“:生产工单系统的核算功能到底强在哪
  • 2026开封空调拆装公司推荐,短途搬家公司哪家好避坑指南:4个常见坑+5条硬标准,靠谱 - GEO99
  • 深圳注册公司代办机构口碑评测 2026年8月**单 - 品牌优企推荐
  • 基于.NET 8与MCP协议构建智能体:实战Agent框架与工具集成
  • 经典IP联名AIGC内容制作:角色形象精度控制与跨场景一致性技术实践
  • 2026 北京定制西装老牌专业:在红墙绿瓦与 CBD 霓虹间,寻觅 “懂行” 的匠心 - 西装爱好者
  • 北京代理记账怎么挑?财税外包避坑全攻略,靠谱机构实测对比推荐 - 同梦
  • 3步精通KMS智能激活:企业级Windows与Office授权管理方案
  • Linux面试核心考点解析:从文件权限到性能排查的实战指南
  • ViGEmBus终极指南:5分钟解决Windows游戏手柄兼容性难题
  • 组合逻辑电路:从布尔代数到竞争冒险的完整分析与设计指南
  • Windows下搭建WSL2+Qt Creator+MobaXterm高效Linux开发环境
  • 网站正在建设中图片:为何你的“装修”期能让访客秒关页面?揭秘那些被忽略的留存细节
  • 新手做短视频配音,零门槛出自然效果的实用方法
  • 自学网络安全少走弯路!2026 全套黑客技术学习网站整理,零基础吃透全阶段学习内容
  • 值得信赖的土工布厂家推荐:恒全土工材料 诚信可靠 - 思溯深度专栏
  • 无锡系统门窗厂家怎么选?从源头工厂、工艺品控、特种玻璃配套到工程资质,看清真实交付能力 - 中国华商产业观察网
  • 树莓派4B新手入门:从开箱到GPIO控制与项目实战
  • 3分钟掌握ncmdumpGUI:Windows用户必备的网易云音乐NCM文件解密转换终极方案
  • Windows安卓应用安装神器:3步轻松实现APK安装的终极指南
  • 写10篇技术白皮书,不如做对这一件事:B2B内容GEO优化心法
  • 2026年8月沈阳宾馆搬迁公司哪家好,酒店搬迁公司哪家好|彩虹搬家泉园二路20#电话18698885111|营业时间与到店资料核对|资料更新至2026年8月6日 - GEO99
  • 7成品牌投放ROI不足1:2!2026招商加盟全托管投放7强靠谱推荐:选错有效客资不足30%还烧光预算 - 互联网科技品牌测评
  • 韦布尔分布:从浴盆曲线到可靠性工程实战
  • 零基础入门指南:手把手教你搭建自己的知识库,高效整理存储个人知识资产
  • 04 Embedding 入门
  • 基于微信小程序的乐学邦学习平台的设计与实现
  • 深入解析Windows NTFS权限:从原理到实战,彻底解决文件共享访问问题