给定一个整数,对这个整数的一次转换是指将这个整数变为这个整数的所有数位上的非零数字的乘积。给定一个整数,请依次将转换过程中经历的每个整数输出,直到小于 10 。
时间: 2024-06-13 09:09:00 浏览: 80
以下是给定一个整数,对这个整数的一次转换是指将这个整数变为这个整数的所有数位上的非零数字的乘积。给定一个整数,请依次将转换过程中经历的每个整数输出,直到小于 10 的做法:
```python
def get_product(num):
while num >= 10:
product = 1
for digit in str(num):
if digit != '0':
product *= int(digit)
print(product)
num = product
print(num)
```
举个例子,如果输入为 12345,输出为:
```
120
0
```
相关问题
给定一个整数,对这个整数的一次转换是指这个整数的所有位数上非零数字乘积
给定一个整数,对这个整数的一次转换是指这个整数的所有位数上非零数字乘积。例如,123的一次转换为1*2*3=6。现在给定两个整数n和k,请你求出在区间[1, n]中,每个数的一次转换的结果中包含k个数字1的数的个数。
以下是Python的实现方法:
```python
def countDigitOne(n):
if n <= 0:
return 0
if n < 10:
return 1
s = str(n)
high = int(s[0])
power = 10 ** (len(s) - 1)
last = n - high * power
if high == 1:
return countDigitOne(power - 1) + last + 1 + countDigitOne(last)
else:
return power + high * countDigitOne(power - 1) + countDigitOne(last)
def countNumbersWithUniqueDigits(n, k):
if k == 0:
return 1
if n == 0:
return 0
res = 0
for i in range(1, n + 1):
if '1' in str(i):
continue
if countDigitOne(i) == k:
res += 1
return res
```
给定一个整数,对这个整数的一次转换是指将这个整数变为这个整数的所有数位上的非零整数的乘积
给定一个整数,对这个整数的一次转换是指将这个整数变为这个整数的所有数位上的非零整数的乘积。例如,给定整数 12345,其一次转换结果为 1*2*3*4*5=120。如果结果不是一位数,则需要继续进行转换,直到结果为一位数为止。例如,对于整数 9876,其一次转换结果为 9*8*7*6=3024,再进行一次转换得到 3*0*2*4=0,因此最终结果为 0。下面是一个 Python 实现的例子:
```python
def digitProduct(num):
while num >= 10:
product = 1
while num > 0:
digit = num % 10
if digit != 0:
product *= digit
num //= 10
num = product
return num
```
阅读全文