2

考虑以下循环:

y=1;
x=a;

//with a>=0 , b>=0

while(x>0){
  y=y*b;
  x=x-1;  
} 

我想得出结论 y = b a

我一直在思考一段时间,似乎无法找出一个足够强大的循环不变量来让我得出结论。有谁知道如何解决这个问题?

非常感谢任何帮助或见解。

4

1 回答 1

2

这里的不变量是 y = b a-x

你从 x=a 开始,所以 xa 为零,b 0 = 1,这是 y 的初始值。

随着循环的进行,每次 x 减少时,y 都会乘以 b。

在循环结束时 x 为零,因此 y = b a

于 2016-04-13T14:01:28.707 回答