📅  最后修改于: 2023-12-03 15:10:52.539000             🧑  作者: Mango
在开发中,我们经常需要检查一个大数是否可以被5整除。下面是几种实现方式:
可以把大数转换成字符串,然后判断字符串最后一位是不是0或者5。
def check_divisible_by_5(n):
return str(n)[-1] in ['0', '5']
如果大数的数据类型是整数,我们可以用取模运算来实现:
def check_divisible_by_5(n):
return n % 5 == 0
如果大数的位数比较大,上述方法会比较慢,我们可以用位运算来优化:
def check_divisible_by_5(n):
return (n & 1 == 0) and (n & 0b10 == 0)
这里用了两次位运算,第一次判断最低位是否为0,第二次判断次低位是否为0。
如果需要判断大量的数字,我们可以使用正则表达式:
import re
def check_divisible_by_5(n):
pattern = re.compile(r'[05]$')
return pattern.match(str(n)) is not None
这里使用了正则表达式,匹配以0或5结尾的字符串。
以上几种实现方式,各有优缺点。具体使用时,需要结合实际情况进行选择。