在 Python 中检查数字奇数位和偶数位数字的乘积是否相等


假设我们有一个数字 n。我们必须检查奇数位数字的乘积和偶数位数字的乘积是否相同。

因此,如果输入类似于 n = 2364,则输出将为 True,因为奇数位数字的乘积为 2 * 6 = 12,偶数位数字的乘积为 3 * 4 = 12,它们是相同的。

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

  • 如果 num < 10,则
    • 返回 False
  • odd_place := 1,even_place := 1
  • 当 num > 0 时,执行
    • d := num 的最后一位数字
    • odd_place := odd_place * d
    • num := (num/10) 的商
    • 如果 num 等于 0,则
      • 中断
    • d := num 的最后一位数字
    • even_place := even_place * d
    • num := (num/10) 的商
  • 如果 odd_place 等于 even_place,则
    • 返回 True
  • 返回 False

示例

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

 在线演示

def solve(num):
   if num < 10:
      return False
   odd_place = 1
   even_place = 1
   while num > 0:
      d = num % 10
      odd_place *= d
      num = num//10
      if num == 0:
         break
      d = num % 10
      even_place *= d
      num = num//10
   if odd_place == even_place:
      return True
   return False
num = 2364
print(solve(num))

输入

2364

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

True

更新于: 2021年1月19日

254 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告