我正在尝试编写一个执行以下操作的代码:
将整数的数字相乘并继续该过程给出
乘积序列总是得出令人惊讶的结果
一位数。
例如:
715 -> 35 -> 15 -> 5
88 -> 64 -> 24 -> 8
27 -> 14 -> 4
达到个位数所需的产品数量
number 称为该整数的持久数。第715章
88 的持久性数为 3,而 27 的持久性数为 2。
编写一个程序,以持久性找到唯一的两位数
大于3?
我能够想出一个粗略的想法,代码如下,但它似乎不起作用:
num2=0
num3=0
num4=0
num=input("what is your number?")
while num in range(10,100):
print 'step1'
num1=num%10*num/10
if num1-10>10:
print 'step2'
num2=num1%10*num1/10
elif num2-num1>10:
print 'step3'
num3=num2%10*num2/10
elif num3-num2>10:
print 'step4'
num4=num3%10*num3/10
elif num4-num3>10:
print 'step5'
print num4
else:
break
该程序是Python,我根本无法弄清楚这一点。如果有人可以帮助我,我将不胜感激!
您应该使用 while 或 for 循环来将数字相乘,而不是硬编码如何处理第一个、第二个等数字。
在伪代码中...
productSoFar = 1
digitsLeftToMultipy = #the number
while there are digits left to multiply:
get the next digit and
update produtsSoFar and digitsLeftToMultiply
另外,使用
10 <= n < 100
代替
n in range(10, 100)
因此,您只需进行几次比较,而不是进行顺序查找,而顺序查找所花费的时间与范围的长度成正比。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)