(11.29)周五19-240823【循环阶段测试】
Done
ACM/ICPC
Start at: 2024-11-29 18:45
200
hour(s)
Host:
11
测试结果生成报告,将于12月5日前发送给学员家长
本周作业:学员根据自己的情况,复盘测试题目。
可以从以下角度进行赛后复盘
- 学会题解后要进行反思。你为何没有想到正确解法?
- 你的解题策略有何缺陷?
- 是不是因为这个东西你没有学过?这些反思在你自己成功解决了一道题后也适用。
- 你解题过程中有什么新颖的想法?
- 这题为什么可以这么做?
- 和我已有的知识的联系是什么?
- 这题还能衍生出什么?能做得更好吗?
示例:
- 题目:反向输出一个三位数
- 我的代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int n, g, s, b, z;
cin >> n;
g = n % 10;
s = n / 10 % 10;
b = n / 100 % 10;
z = b + s * 10 + g * 100;
cout << z << endl;
return 0;
}
- 我的做法:输入一个整数n, 把n的个位,十位、百位分别取出,存到g、s、b三个变量中,然后再把这三个变量合并成一个整数存到 变量再中,输出z.
- 我的代码缺陷:我只考虑了题目中,输入358,输出853的情况;忽略了个位、十位是0的特殊情况,例如输入的n是120,我的 z 只会被赋值成12,正确的输出应该是012;
- 总结:这道题用到了取数位的方法,这个知识点我已经掌握。做错的原因是比赛是没有去过多的思考会不会有特殊情况,并且我赛时只测试了第一组数据。这题其实直接输出g,s,b三个变量就可以了。我还想到了一种只要改下输出就能把代码改对的方法:
printf("%03d",z);
;通过不够3位数自动在前面补0,的方法,解决了n末尾是0的时候,0丢失的问题。
- Status
- Done
- Rule
- ACM/ICPC
- Problem
- 7
- Start at
- 2024-11-29 18:45
- End at
- 2024-12-8 2:45
- Duration
- 200 hour(s)
- Host
- Partic.
- 11