Python - 如何在不使用%,//,/或任何乘法的情况下编写程序来获取两个数的商的余数?

问题描述 投票:-2回答:2

我真的坚持这个。我可以用整数除法和乘法来做,但我不知道如何在没有任何这些运算符的情况下找到余数。 (也不能导入任何东西。主要前提是使用while循环)。

python modulo
2个回答
3
投票
>>> def solution(a, b):
...     while a >= b:
...         a -= b
...     return a
... 
>>> solution(11, 5) == (11 % 5)
True
>>> solution(763, 47) == (763 % 47)
True

0
投票

只是一个有效的:

def mod(a, b):
    if a >= b:
        a = mod(a, b + b)
    if a < b:
        return a
    return a - b

演示:

>>> a, b = 75349157395712349036170927572349157024, 543791534729045
>>> mod(a, b)
510757213184524
>>> a % b
510757213184524
© www.soinside.com 2019 - 2024. All rights reserved.