关于数量之和与数字之和
昨天群里有个学生发了这样一个题目,真是感觉不爽。
求1-709这709个连续自然数的全部数字之和
首先这个题目又一些奇异,就是是阿拉伯数字之和,不是自然数的数量之和,这就是一个很讨厌的梗了。
接着,我就用很蠢的方法做了一下
接着我就发现答案在嘲笑我
似乎这个习题集上下都是这类题目,可以套一个标准公式
然后我就晕了,去网上搜了一下,发现也可以用高斯首尾相加的算法做
于是机智的我用和答案不一样的做法算了一遍
竟然发现两种高斯算法做出来结果不一样,显然有一种是错的
用0和699对齐,与 1和699对齐算出来的竟然不一样!
我当天下午立刻感觉被暴击1w点。
第二天我到工作室,和老师商量不行就用excel做一下数据表
于是我心一狠,就开始做报表。结果发现一个BIG的问题!
1-699对齐中间数字之和有断档的现象,会出现16、7
用0和699对齐就可以完美的避开这个问题
我开始把数据对齐做移动,用2和699对齐依然存在这些问题,0和698对齐也会有数字断档的情况!
所以!只有0-699对齐才能保证收尾之和一致,这个和普通高斯算法在数量上的运用是完全不同的,在数量运算中高斯算法在任何对齐的情况下都不会有这种诡异的情况。所以!
同学们,做题要谨慎啊!
...