1、整数的范围边界或个数的计算
例如:
对于 x >= 16 且 x <= 37 来说,x 的取值范围为多少?答案并不是37-16=21!
处理方法原则:
- 第一步:考虑最简单的特例,x >= 16 且 x <= 16 ,显然 x 取值只有1个整数,即上界H与下界L重合时只有 ((H-L=0)+1)=1 个。
- 第二步:根据特例外推,当上界H与下界L不重合时,个数为 H-L+1 个。
所以对于 x >= 16 且 x <= 37 来说,x 的取值范围为 37-16+1=22 个。
2、不对称边界原理
用一句话来概括就是:用第一个入界点和第一个出界点来表示数值范围。
- 入界点:取值范围之中
- 出界点:取值范围之外
例如:
对于 x >= 16 且 x <= 37 来说,第一个入界点为:x = 16,第一个出界点为:x = 38。所以取值范围为:38 - 16 = 22;对于 x > 3 且 x <= 9 来说,第一个入界点为:x = 4,第一个出界点为:x = 10。所以取值范围为:10 - 4 = 6。
所以我们编程时应该写成:
int a[10], i;
for (i = 0; i < 10; i++);
而不是:
for (i = 0; i <= 9; i++);