在 Python 中检查数字奇数位数字之和是否能被 K 整除


假设我们有一个数字 n 和另一个数字 k,我们需要检查 n 的奇数位(从右到左)上的数字之和是否能被 k 整除。

因此,如果输入类似于 n = 2416 k = 5,则输出将为 True,因为从右到左奇数位的数字之和为 4 + 6 = 10。它可以被 5 整除。

为了解决这个问题,我们将遵循以下步骤:

  • total := 0, pos := 1
  • 当 n > 0 时,执行以下操作
    • 如果 pos 为奇数,则
      • total := total + (n 模 10)
    • n := (n / 10) 的商
    • pos := pos + 1
  • 如果 total 可以被 k 整除,则
    • 返回 True
  • 返回 False

让我们看看下面的实现以更好地理解:

示例代码

在线演示

def solve(n, k):
   total = 0
   pos = 1
   while n > 0:
      if pos % 2 == 1:
         total += n % 10
      n = n // 10
      pos += 1
     
   if total % k == 0:
      return True
   return False

n = 2416
k = 5
print(solve(n, k))

输入

2416, 5

输出

True

更新于: 2021年1月16日

70 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告