-4

我对算法很陌生,虽然我理解它非常简单的代码,但我发现很难在下面的代码中找到循环不变量。有人可以明确告诉我以下代码的良好循环不变量是什么。任何帮助深表感谢

int sumBetween (int x , int y){
    //pre-condition : x<=y
    //post : returns the sum x+(x+1)+(x+2)+.........+y
    int sum=0;
    for(int i=x; i!=y+1; i++) {
        sum+=i;
    }

除了 sum 等于从 x 到 y 的所有整数之外,我想不出任何循环不变量,但在第一次迭代之前这是不正确的。是否存在覆盖后置条件的循环不变量?

4

1 回答 1

1

循环不变量是不随迭代而变化的。

在你的情况下,这就是变量y

于 2018-03-17T01:33:26.073 回答