CCF CSP 2018.03:序列处理与模拟题C++满分代码解析
需积分: 45 133 浏览量
更新于2024-09-08
收藏 72KB DOCX 举报
本资源提供的是CCF CSP软件能力认证2018年3月第13次考试的两道题目及其解析和100分的C++代码实现。第一题名为“跳一跳”,考察序列处理能力。题目要求处理一个输入序列,其中的数字代表分数,当连续得分2分时加分规则为每次加2分,得1分时不加分。核心代码通过`scanf`读取输入,累计分数并根据规则调整加分状态。
```cpp
#include<iostream>
using namespace std;
int main()
{
int a, sum = 0, plus = 0;
while (scanf("%d", &a) != EOF && a)
{
sum += a;
if (a == 1)
plus = 0;
else if (a == 2)
{
sum += plus;
plus += 2;
}
}
printf("%d\n", sum);
return 0;
}
```
第二题是“碰撞的小球”,模拟题目,需要按照时间序列模拟小球的运动,判断小球是否相撞并调整方向。提供了两种解法:一种是不排序的暴力法,使用数组`pos`和`step`记录小球位置和运动方向;另一种是结构数组法,通过排序简化处理。暴力法的核心代码如下:
```cpp
#include<iostream>
using namespace std;
const int L = 1000;
int pos[L + 1], step[L + 1];
int main()
{
int n, l, t;
cin >> n >> l >> t;
for (int i = 0; i < n; i++)
{
cin >> pos[i];
// 其他代码处理小球移动和碰撞检测
}
// ...模拟过程
return 0;
}
```
总结来说,这两道题目都是对基础编程技能的考察,特别是输入处理、循环控制和数组操作,同时也涉及到了模拟算法和优化技巧。通过解答这些题目,考生可以提升对C++语言的理解,以及在实际编程中处理类似问题的能力。
2018-11-02 上传
2019-06-04 上传
2019-06-04 上传
2019-06-04 上传
2019-06-04 上传
2019-06-04 上传
2019-06-04 上传
qq_40186640
- 粉丝: 2
- 资源: 31
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析