lAssert n > 0 is the number to be squared.
lint sum = 0; // accumulated sum
int i = 0; // step number
int fd = 1; // first difference
int sd = 2; // second difference
while( i < n )
{// sum == i2 ô i < n ô fd == 2*i+1 ô sd == 2
sum = sum + fd;
fd = fd + sd;
i = i+1;
}
lAssert sum == n2
l
lThe
arrow-ed assertion is called a loop
invariant.
l