本文介绍了Python 3 在划分两个大数时给出错误的输出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

a = 15511210043330985984000000 # (25!)b = 479001600 #(12!)c = 6227020800 #(13!)

ans = int(a/(b*c))ans = int((a/b)/c) 我们得到ans 等于 5200299 而不是 5200300

解决方案

在 Python 3.x 中 / 表示浮点除法,可能会产生小的舍入误差.使用 // 进行整数除法.

ans = a//(b*c)
a = 15511210043330985984000000  # (25!)
b = 479001600                   # (12!)
c = 6227020800                  # (13!)

On dividing ans = int(a/(b*c)) or ans = int((a/b)/c) we get ans equal to 5200299 instead of 5200300

解决方案

In Python 3.x / means floating point division and can give small rounding errors. Use // for integer division.

ans = a // (b*c)

这篇关于Python 3 在划分两个大数时给出错误的输出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 07:54