怎样写解题报告
同学们在做完题目后,要养成总结经验教训、写解题报告的习惯。对于每一个自己不是一遍做对的题、自己觉得有难度的题、比赛中(而非作业中)见到的题,都应该写解题报告。
解题报告最好遵循以下的格式:
标题,包括题号、题目标题,并空一格写「解题报告」四个字。(写到上文标题处,并使用H1标题写在正文)
(题目链接)
题意(使用H2标题)
自己复述题意,去掉所有「讲故事」的题面,只留下最简短的题意。但是要强调重点信息,比如数据范围等。
力求让其他人看到你总结的题意后,不用看原文,就能够完成这道题目。
(注意分段在编辑器中要空一行)
题解(使用H2标题)
讲述本题的做法、遇到的难点、自己的解决方案等。
对于自己做错、后来改正的题目,以及自己觉得有难度的题目,一定要说清自己觉得难的地方和解决方案。
代码(使用H2标题)
粘贴你自己最后通过此题的代码。可以使用菜单栏「插入代码</>」的功能。
下面是一份解题报告示例
B2039 整数大小比较 解题报告
B2039 整数大小比较
题意
分别输入一个 [0,2^32) 范围和 [-2^31,2^31) 范围的整数,比较它们之间的大小。
题解
这个题的难点在于,两个数的数据范围并不相同,并且其中一个不能用 int 存下。
我们把其中一个数用 unsigned int 来存,记为 a;另一个用 int 存,记为 b。注意 unsigned int 要用 %u 来输入。
另一个难点是, unsigned int 和 int 不能直接比较。我们可以考虑把他们都转化成 unsigned int,去掉符号带来的问题。当 b 为负数时,它显然小于无符号的 a,所以我们可以先判断这种情况,然后在剩下的情况中把 b 转成无符号整数。
代码
#include <stdio.h>
int main()
{
unsigned int a;
int b;
scanf("%u%d", &a, &b);
if (b < 0)
{
printf(">");
}
else
{
unsigned int temp_b = (unsigned int)b;
if (a > b)
{
printf(">");
}
else if (a == b)
{
printf("=");
}
else
{
printf("<");
}
}
return 0;
}