在Python中将n个1除以m后求余数的程序

假设我们有两个数字 n 和 m。我们必须找到 n 个 1 除以 m 后的余数。

所以,如果输入像 n = 4 m = 27,那么输出将是 4,因为 1111 mod 27 = 4。

为了解决这个问题,我们将按照以下步骤操作 -

定义一个函数util()。这将需要 x, n, m

  • y := 1

  • 当 n > 0 时,做

    • n := n/2 的底

    • y := (y * x) mod m

    • 如果 n 是奇数,那么

    • x := (x * x) 模 m

    • 返回 y

    从(util(10, n, 9 * m) / 9)的main方法return floor

    示例

    让我们看看以下实现以获得更好的理解 -

    def util(x, n, m) :
       y = 1
       while n > 0 :
          if n & 1 :
             y = (y * x) % m
          x = (x * x) % m
          n >>= 1
       return y
    
    def solve(n, m):
       return util(10, n, 9 * m) // 9
    
    n = 4
    m = 27
    print(solve(n, m))

    输入

    4, 27
    输出结果
    4

    猜你喜欢