-
(1)假设你上班的地方位于一座5层的写字楼里,你爬1层楼需要10秒,那么请问你爬上5楼需要花费多少时间? 为了正确计算这个问题,我们需要使用的是:10秒*(5-1)=40秒;
-
(2)等差数列第n项的值为:初项+公差*(n-1);
-
(3)我们都知道20世纪是19__年,19世纪是18__年
对于以上3个问题如果分别按照如下处理:
-
(1)写字楼和地面相同的高度的那一层,计数为0层;
-
(2)数列最初的项,计数为第0项;
-
(3)最初的世纪计数为0世纪。
就能够回避在计算或者理解问题时的一些不方便,比如这时候:
-
(1)你从0层爬到4层需要多少时间,就可以脱口而出40秒;
-
(2)等差数列的通项公式就可以更简洁地表达为:初项+公差*n;
-
(3)19世纪对应的就是19__年……等等等等
举了一个编程中的例子,假设你需要使用一维数组去代替二维数组使用,
假设最初的行为第0行,最初的列为第0列,数组下标也是从0开始的,那么:
/* width为行的宽度,引用第line行,第col列的元素*/
array[line * width + col]
假设最初的行为第1行,最初的列为第1列,数组下标也是从1开始的,那么,上面的代码就需要改成下面这样:
array[(line-1) * width + (col-1)]
对比可以看到从0开始计数,代码更加简洁美观。
作者:秦栋梁
链接:https://www.zhihu.com/question/20302205/answer/142786575
来源:知乎
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv16208