在这里,我有一个简单的算法,它通过将所有等于输入数字的奇数相加来计算数字的平方,例如:
1 = 1 = 1-squared
1 + 3 = 4 = 2-squared
1 + 3 + 5 = 9 = 3-squared
等等。算法如下:
int triangleSquare(int number) {
int product = 0;
int currentOdd = 1;
while (number--) {
product += currentOdd;
currentOdd += 2;
}
return product;
}
我的问题是关于细分的:
while (number--) { ... }
while (--number)
由于某种原因,我在and之间得到了不同的结果while (number--)
,我认为这是因为--number
在执行 while 循环之前应该先递减(反之亦然number--
)。我的问题是,为什么会有所不同?无论递增顺序如何,while循环不应该总是最后执行吗?我一定遗漏了一些明显的东西,但这对我来说似乎很奇怪,几乎就好像number--
使条件表现得像一个do {...} while()
循环。