我正在尝试计算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。
答案 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的解决方案。