Python 除以 10
Python division by 10
我想计算一个数的阶乘的尾随零。当我将数字除以 10 时,我希望删除最后一个零,但事实并非如此。
def fact(num):
if (num==0 or num==1):
return 1
else:
return num*fact(num-1)
def num(a):
f = fact(a)
count = 0
while(f%10==0):
count=count+1
print(f)
f=int(f/10)
print(f)
return count
n=int(input())
while(n!=0):
a=int(input())
print(num(a))
n=n-1
您需要更换:
f=int(f/10)
和
f = f // 10
在 num()
函数中。它会解决你的问题。
解释:
f/10
将数字转换为 float
。当您将 float
转换为 int
时,如果数字很大,它会失去精度。
你可以这样确认:
a = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
print(int(a/10)) # prints: 832098711274139031630889608027340070244161333703152098685794054394185233318543360
print(a//10) # prints: 832098711274139014427634118322336438075417260636124595244927769640960000000000000
我想计算一个数的阶乘的尾随零。当我将数字除以 10 时,我希望删除最后一个零,但事实并非如此。
def fact(num):
if (num==0 or num==1):
return 1
else:
return num*fact(num-1)
def num(a):
f = fact(a)
count = 0
while(f%10==0):
count=count+1
print(f)
f=int(f/10)
print(f)
return count
n=int(input())
while(n!=0):
a=int(input())
print(num(a))
n=n-1
您需要更换:
f=int(f/10)
和
f = f // 10
在 num()
函数中。它会解决你的问题。
解释:
f/10
将数字转换为 float
。当您将 float
转换为 int
时,如果数字很大,它会失去精度。
你可以这样确认:
a = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
print(int(a/10)) # prints: 832098711274139031630889608027340070244161333703152098685794054394185233318543360
print(a//10) # prints: 832098711274139014427634118322336438075417260636124595244927769640960000000000000