我的代码乘以这个数字的次数:

时间:2014-03-23 18:42:39

标签: python

我得到了这个代码(它进行了整数取幂),我应该知道我的代码在使用(n1)时循环了多少次,使用(n2)if的次数是多少次以及乘法次数是多少次使用(n3)完成,我想我正确地放置了n1和n2,但我不知道应该放在哪里n3或者我应该如何计算它。

def power(a,b): 
    n1=0
    n2=0
    n3=1
    result = 1 
    while b>0:
        n1+=1
        if b%2 == 1: # b is odd 
            result = result*a
            n2+=1
        a = a*a # squares power of a 
        b = b//2 # removes least significant bit of b
        n3+=1
    return result,n1,n2,n3

1 个答案:

答案 0 :(得分:1)

由于在if语句中进行了乘法运算:

result = result * a

你应该在那里增加n3

def power(a, b):
    n1 = 0
    n2 = 0
    n3 = 1
    result = 1
    while b > 0:
        n1 += 1 # loop
        if b % 2 == 1:
            result = result * a 
            n2 += 1 # if
            n3 += 1 # multiplication
        a = a * a 
        b = b // 2 
        n3 += 1 # multiplication
    return result, n1, n2, n3