【问题标题】:Multiplying odd numbers in a string将字符串中的奇数相乘
【发布时间】:2019-11-18 21:07:19
【问题描述】:

实现一个名为 mult_odd_digits(n) 的函数,它接收一个正整数 n 并返回其奇数位的乘积。

• 如果没有奇数,则返回 1。

例子:

>>> mult_odd_digits(5638) 
15

 def mult_odd_digits(n):
    for i in n:  # replace this with your implementation
       if i%2==0:
           mult=i*(i+1)
       else:
           print ('1')
   return mult
result=mult_odd_digits(5638)
print (result)

【问题讨论】:

  • int 值不可迭代;你不能像这样遍历(十进制)数字。
  • 我投票决定将此问题作为题外话结束,因为它似乎是一个逐字逐句的家庭作业问题,无需努力解决自己
  • 请用问题更新您的问题。
  • @ChrisCharles 作业没有限制。
  • 好的,我撤回了我的近距离投票。

标签: python function multiplication


【解决方案1】:

整数不可迭代。您可以将数字转换为字符串,然后将每个字符转换为整数。

您也没有将数字相乘。当你得到一个偶数时,你将它乘以下一个数字——为什么?为什么要为每个奇数打印1

def mult_odd_digits(n):
    digits = map(int, str(n))
    product = 1
    for digit in digits:
        if digit % 2 == 1: # odd digit
            product *= digit
    return product

如果您不应该将其转换为字符串,则可以使用取模运算符来获取每个数字。

def mult_odd_digits(n):
    product = 1
    while n != 0:
        digit = n % 10 # last digit of n
        if digit % 2 == 1:
            product *= digit
        n //= 10 # remove last digit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    相关资源
    最近更新 更多