考虑以下程序片段,用于反转给定整数中的数字以获得新的整数。令n = D1D2…Dm
int n, rev;
rev = 0;
while (n > 0)
{
rev = rev*10 + n%10;
n = n/10;
}
第i次迭代结束时的循环不变条件为:
(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的最后一位开始将数字添加到rev来实现。它还从左开始从n中删除数字。
这个问题的测验