一题多解
约 10 分钟
同一道题,试着用两种不同方法各做一遍,收获比只做一遍大得多。做完一比较,你会真正体会到每种做法的快慢和好坏。就拿“求 1 加到 n”来说,可以老老实实循环累加,也可以用等差数列公式一步算出,一慢一快,对照之下印象特别深。
#include <iostream>
using namespace std;
int main() {
int n = 100, sum = 0;
for (int i = 1; i <= n; i++) sum += i; // 解法一:循环,O(n)
int fast = n * (n + 1) / 2; // 解法二:公式,O(1)
cout << sum << " " << fast << endl; // 5050 5050
return 0;
}
好处:两种解法答案对得上,能互相验证;万一对不上,正好逼你去查是哪一种想错了。一题多解,既加深理解,又顺手做了一次自我检查。
小纸条
挑一道题用第二种方法重做。
登录 后可看答案