胖胖的小阿涵 发表于 2020-12-7 23:24:22

我这个程序我感觉没错啊,为啥结果就是不对呢

编写一个函数 power() 模拟内建函数 pow(),即 power(x, y) 为计算并返回 x 的 y 次幂的值。
def power(x,y):
        for each in range(y):
                x*=x
                if (each+1)==y:
                        print(x)

昨非 发表于 2020-12-7 23:29:55

def power(x,y):
    result=1
    for each in range(y):
      result*=x
    print(result)
power(2,3)

昨非 发表于 2020-12-7 23:32:10

本帖最后由 昨非 于 2020-12-7 23:34 编辑

                if (each+1)==y:
                        print(x)
上面这部分没必要,因为执行完for后自然each+1=y,成立,所以直接打印就好

而且,不能用x*=x
因为这样的话2*2=4,下一次循环就是4*4=16,在下一次就是16*16=256了
而我们想要的是,2*2=4       4*2=8       8*2=16

胖胖的小阿涵 发表于 2020-12-7 23:43:23

昨非 发表于 2020-12-7 23:32
上面这部分没必要,因为执行完for后自然each+1=y,成立,所以直接打印就好

而且,不能用x*=x


谢谢
页: [1]
查看完整版本: 我这个程序我感觉没错啊,为啥结果就是不对呢