(1)基础(下):正确性证明

的最后一个,,

,找到循环不变量,设

和每次迭代都会加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都可以作为循环不变量,关键是你要证明什么?循环不变量要反映你的目的,这样终止时才能帮助你正确程序的正确性!

人生就是一次充满未知的旅行,在乎的是沿途的风景,

(1)基础(下):正确性证明

相关文章:

你感兴趣的文章:

标签云: