首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python除以10

Python除以10
EN

Stack Overflow用户
提问于 2020-04-07 07:44:52
回答 1查看 2.1K关注 0票数 2

我想数一个数字的阶乘的尾数零。当我把这个数字除以10的时候,我希望最后的零会被移除,但它没有。

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 07:53:15

你需要替换:

代码语言:javascript
运行
复制
f=int(f/10)

使用

代码语言:javascript
运行
复制
f = f // 10

内部num()函数。它会解决你的问题。

解释:

f/10将数字转换为float。当你把那个float转换成int时,它就失去了一个大数字的精度。

您可以通过这样做来确认它:

代码语言:javascript
运行
复制
a = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000

print(int(a/10)) # prints: 832098711274139031630889608027340070244161333703152098685794054394185233318543360

print(a//10) # prints: 832098711274139014427634118322336438075417260636124595244927769640960000000000000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61075108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档