考虑以下程序片段,用于反转给定整数中的数字以获得新的整数。令n = D1D2…Dm
int n, rev;
rev = 0;
while (n > 0)
{
rev = rev*10 + n%10;
n = n/10;
}
第i次迭代结束时的循环不变条件为:(GATE CS 2004)
(A) n = D1D2 …. Dm-i和rev = DmDm-1 … Dm-i + 1
(B) n = Dm-i + 1…Dm-1Dm和rev = Dm-1….D2D1
(C) n!=转
(D) n = D1D2….Dm和rev = DmDm-1…D2D1
答案: (A)
说明:我们可以通过使用n = 54321这样的示例来获得它。经过2次迭代,rev将为12,n将为543。
这个问题的测验