本篇文章讲解题目:小学求和1到n
推荐先独立进行解题尝试,然后再阅读本篇讲解!
注意观察这道题与上一个求和的差别。
首先从一组数据变为了多组数据,但这一点在学习了循环之后应该已经不再是问题了。
我们只需要读取一个变量T记录组数,然后使用语句:
while(T--) { }
在大括号里写程序即可。
这道题给的范围为0 < n < 10 ^ 9
所以如果依旧使用for的话循环最大要进行10^9次
评测机一秒大概可运行10 ^ 7 \sim 10 ^ 8 次
所以O(n)的复杂度是不行的
(推荐先自己查阅时间复杂度相关资料)
事实上,如果让小学生来解,这便是一道很简单的等差数列求和,所以可用求和公式直接算出答案。
当然,还需要注意数据范围的问题。
再次举这一题的例子也是想再次说明思维的重要性。
一道题随着题目描述的不同,解答方式也许有着差异,所以不要局限于某一种解法,多加尝试才能处变不惊。