我认识的一位大学新生正在学习计算机科学课程的介绍,请我帮助他完成一项家庭作业。我通读了几次,我很尴尬地承认我不知道他们要什么。这是问题:
下面给出了循环的轮廓。完成程序,以便读取 x 和 y 值,验证它们(通过继续提示用户直到他们输入正确的值),然后运行以使给定的断言始终为真。在程序中必须为真的四个点处包含循环不变断言。除了给定的 assert(...) 语句外,您不能使用乘法运算符。
assert(x>0 && y>0);
while(...)
{
assert(sum == i*(x+1));
...
...
}
assert(sum == y*(x+1));
我不知道什么是循环不变量,所以我搜索并阅读了Wikipedia 文章。从那我收集到的第一个断言语句告诉我,在循环期间我不应该允许 x 和 y 为负数。老实说,我被困在这一点上。有人可以帮我理解他们在这里的要求吗?