计算循环运行的次数

时间:2019-12-11 15:18:42

标签: logic complexity-theory

我是编程新手,我想知道以下函数中发生了多少次迭代。我只想知道迭代次数如何取决于a和b 其中A和B是二进制数,例如A = 101010和b = 1011010。 以下是无需使用+运算符

即可将两个数字相加的算法
  while B is greater than 0:
        U = A XOR B
        V = A AND B
        A = U
        B = V * 2

1 个答案:

答案 0 :(得分:0)

我将假设惯常的惯例是将非零值视为i,并且True的值为0

由于您未指定False的初始值,因此请考虑两种情况(我假设初始化时为A,否则将没有迭代):

B==True

因此,根据CASE 1: A==False => (U==True and V==False) => B=0 => iterations stop CASE 2:A==True => (U==False and V==True) => B=True, A=False => this is now CASE 1 的初始值并在开始时假设A,将有B==True1个迭代。