說我的輸入是39
- 我想正確循環通過這個數字的部分,直到最終產品是一個數字(3 * 9 = 27, 2 * 7 = 14,1 * 4 = 4),並返回作爲輸出的次數乘以,在這個例子中,這將是3.
如何計算整數乘以部分的次數以減少到單個數字
我對循環的基本理解讓我到第1步,使用上面的例子設法返回27
。
def times_multiplied(n):
total = 1
for i in map(int, str(n)):
total *= i
return total
另一種認爲我有減少的數量,沒有找到計數只是還沒有,是要增加額外的for循環,但我的直覺說,這是太多的代碼。我確信Python提供了一個更簡單,更優雅的解決方案......
最後,當然是捕獲乘以次數的方法,我的直覺也可能與Counter有關。我並不積極。
請幫忙!
順便說一句,這就是所謂的(HTTP [數字的乘法持久]://mathworld.wolfram .com/MultiplicativePersistence.html).OEIS條目是[A031346](https://oeis.org/A031346),順便提供了一個類似於@ GReaperEx答案的Python函數示例。不幸的是,似乎並沒有一個直接的公式,所以這就好像你會得到。 –