2 回答
TA贡献1846条经验 获得超7个赞
尝试这个:
def reverse(n):
m = 0
while n > 0:
n, r = divmod(n, 10)
m = 10 * m + r
return m
但是,对于实际应用程序,我希望以下内容会更快:
def reverse(n):
return int(str(n)[::-1])
尝试满足评论中给出的愚蠢约束的其他一些方法:
n = 45712090
s = str(n)
t = ""
m = len(s)
for i in range(m):
t = s[i] + t
print(t)
n = 45712090
s = str(n)
m = len(s)
for i in range(m - 1, -1, -1):
print(s[i], end="")
print()
import math
n = 45712090
m = math.ceil(math.log10(max(1, n)))
for i in range(m):
n, r = divmod(n, 10)
print(r, end="")
print()
TA贡献1854条经验 获得超8个赞
a = int(input())
b = 0
while(a>0):
b = b*10 + a%10
a = a//10
print(b)
在 while 循环中,我们传递条件,运行直到 a(12345) 小于 0 最初 b =0 所以 b*10 等于 0 + a(12345)%10 = 5(将是你的 a 的最后一位)然后在下一行当您在 a(12345)//10 中进行地板除法时,它将取出 a 的最后一位数字并变为 1234 并且此循环再次运行并检查 a(1234) > 0 然后这次转到第二行 b = b(5)*10 + a(1234)%10 ,b 变为 50,a 变为 123 这将一直持续到 a 中没有数字为止,希望你明白
添加回答
举报