做题时,我该查哪一篇?¶
不会做题时,不用从头翻整本教程。先说清楚“我卡在哪一步”,再找对应的方法。
| 你遇到的问题 | 去哪里查 |
|---|---|
5 / 2 为什么得到 2?平均数怎样算出小数? |
变量与运算 |
题目要求输出 2.50,怎么保留两位小数? |
printf 保留小数位数 |
| 至少几辆车、几袋、几盒?不足一份也算一份 | 向上取整 |
| 把很多数加起来、乘起来;求阶乘、整数幂 | for 循环:累加与累乘 |
| 求一堆数中的最大值、最小值 | 打擂台 |
| 输出几行几列;每个人都要做几次事 | 双重循环的简单例子 |
| 取个位、求数位和、求位数、反转数字 | 数位拆分 |
| 一个数要不要用 for?很多个数要怎么拆? | 数位拆分:如何选循环 |
| L 到 R 中数字 2 出现了多少次? | 统计区间里的数字 2 |
| 从左往右和从右往左读是否一样? | 回文判断 |
| 二进制形式是不是回文? | 二进制回文 |
| 范围不大,能不能一个一个试? | 枚举入门 |
查到了以后,怎样自己学?¶
- 先读例子,用纸笔算出结果。
- 找到代码中最关键的一两行,说出它们的作用。
- 运行示例,再换一组输入。不要只试教程给出的输入。
- 回到自己的题:输入范围、统计对象、输出格式一样吗?再决定怎么改。
完整程序可以单独编译运行;标成“代码片段”的内容需要放进已有程序中。代码旁的范围是这份示例的适用条件,不是所有题目的条件。
推荐的学习顺序¶
先学变量、输入输出和分支,再学 for、while。接着练累乘、打擂台、双重循环、数位拆分,最后组合成区间统计、回文和枚举。
遇到难题,可以先问自己:我能不能先解决“只有一个数”“只有一行”“只有一种选择”的小问题?