📜  算法|算法分析|问题19

📅  最后修改于: 2021-07-02 17:23:43             🧑  作者: Mango

考虑以下程序片段,用于反转给定整数中的数字以获得新的整数。令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。
这个问题的测验