Python除以10

2024-04-26 15:07:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算一个数的阶乘的尾随零。当我把这个数字除以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

Output


Tags: orinputreturnifdefcount数字else
1条回答
网友
1楼 · 发布于 2024-04-26 15:07:42

您需要替换:

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

相关问题 更多 >