将字符串中的奇数相乘

时间:2019-11-18 21:07:19

标签: python function multiplying

实现一个名为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)

1 个答案:

答案 0 :(得分:-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