将奇数乘以字符串

问题描述 投票:-3回答:1

实现名为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)
python function multiplying
1个回答
0
投票

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

您也没有将数字彼此相乘。当您得到偶数位时,将其乘以下一个数字-为什么呢?为什么要为每个奇数打印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
© www.soinside.com 2019 - 2024. All rights reserved.