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