このサンプルコードのループ不変条件とは何ですか。
これは、Cプログラミング言語で実装された抜粋コードです。
//pre-condition m,n >= 0
x=m;
y=n;
z=0;
while(x!=0){
if(x%2==0){
x=x/2;
y=2*y;
}
else{
x=x-1;
z=z+y;
}
}//post-condition z=mn
これらは私の最初の答えです(ループ不変条件):
y>=n
x<=m
z>=0
私はまだこれについて確信が持てません。ありがとう。