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