(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