以一个题目为例,深入剖析挖掘背后深层次需要注意的点。
1.题目 :
用循环语句计算1!+ 2!+ 3!
2.错误示范:
用两层for语句解决该问题。
所打印的结果明显与答案不同,为什么?
3.剖析错题
当n = 1 时
当n = 2时
当n = 3时
当n= 1 ,= 2 , = 3时 所得的值分别为 1 ,2 ,12,
1+2+12 = 15。
为什么n = 3 时所得的值不是6?
因为 ret的初始值发生了变化。
n = 2时 使得ret = 2,而ret = 2 成为了 n = 3 时 的ret 的初始值。
4.修正
在第一个for循环语句内 给ret 赋初始值
5.该题目的优解