的最后一个,,
,找到循环不变量,设
和每次迭代都会加1,所以循环一定能终止。
至此,我们可以确认,S和i是此循环的不变量。于是,我们就能够证明:当循环终止时,即k = n,那么S = k * n = n * n,即n的平方。所以此循环的确能够正确地计算出n的平方。
附:思考如何选取循环不变量?
int j = 9;
for(int i=0; i<10; i++)
j–;
一般来说,循环终止条件一定是循环不变量,但这种循环不变量是否有用呢?比如这一小段程序,i<10或者j>-100或i+j=9都可以作为循环不变量,关键是你要证明什么?循环不变量要反映你的目的,这样终止时才能帮助你正确程序的正确性!
人生就是一次充满未知的旅行,在乎的是沿途的风景,