考虑以下循环:
y=1;
x=a;
//with a>=0 , b>=0
while(x>0){
y=y*b;
x=x-1;
}
我想结束y = b a
我一直在思考一段时间,似乎无法找出一个足够强大的循环 不变量让我得出结论。有谁知道如何处理这个问题?
非常感谢任何帮助或见解。
答案 0 :(得分:2)
这里的不变量是y = b a-x 。
你从x = a开始,所以x-a为零,b 0 = 1,这是y的初始值。
随着循环的进行,每次x减小时y都会乘以b。
在循环结束时x为零,所以y = b a 。