2 * 2 * 2 ... j次没有**运算符

时间:2019-02-05 00:46:38

标签: python python-3.x exponentiation

我正在尝试计算2 * 2 * 2 ... j次,但没有使用**运算符。

我尝试使用正方形,但是当我想到时,它不可能是平方。

N = int(input('Num: '))
x = 1
while True:
    if x * x > 0:
        break
    else:
        x += 1
print(x - 1 * x - 1)

如果我输入5,结果应该是32,但实际上是-1。

3 个答案:

答案 0 :(得分:4)

您可以移位:

N = int(input('Num: '))
print(1 << N)

或者,尽管基本上是pow运算符,但只需使用内置的**

N = int(input('Num: '))
print(pow(2, N))

如果您想使用循环:

N = int(input('Num: '))
result = 1
for _ in range(N):
    result *= 2
print(result)

答案 1 :(得分:2)

我认为您过于复杂了:

j = int(input('Num: '))
x = 1
for _ in range(j):
   x *= 2
print(x)

j = int(input('Num: '))
x = 1
while j > 0:
    x *= 2
    j -= 1
print(x)

答案 2 :(得分:0)

import math
math.pow(x, N)

应该这样做!

编辑:math.pow将中断较大的N值,如注释中所述。请改用Tomothy32的解决方案。