问题陈述: 求m和n之间的所有这些数(都包括在内),使每个数都是偶数数字。那个第一行包含由a分隔的值m和n逗号获得的数字应以逗号分隔的顺序打印在单行上。 限制条件: 1000<;=m<;=9000和 1000<;=n<;=9000
我的解决方案:
inp=input()
arr=inp.split(',')
m=int(arr[0])
n=int(arr[1])
num=[]
for i in range(m,n+1):
t=i
while t>0:
j=t%10
if j%2==0:
t/=10
else:
break
if t==0:
num.append(i)
for i in range(len(num)):
if i!=len(num)-1:
print(num[i],end=',')
else:
print(num[i],end='')
例如,如果m=2000,n=2010,那么输出应该是20002002200420062008
但我没有得到任何输出。我的程序有什么毛病?在
退货
^{pr2}$如果要打印:
你的起始号码和结束号码都有数字。有效数字为0、2、4、6、8。现在,你要做的第一件事就是找到第一个大于或等于最小数的数字,并且它的所有数字都是成对的。如果初始数字有一个不成对的数字,那么它需要增加到下一对数字。如果数字不是最后一位,则其后面的所有其他数字将变为0值。一旦有了第一个有效数字,就可以重复打印当前有效数字,并将最后一个数字增加两个,直到最后一个数字达到结束数字或0。如果你到达最后一个号码,你的例行程序就结束了。如果你没有到达最后一个数字,那么你的最后一个数字是0,倒数第二个数字增加2。处理倒数第二个数字和处理最后一个数字一样。在
问题是在python3中
/
执行浮点除法,而不是floor除法。将t /= 10
更改为t //= 10
。在在Python2中,
3 / 4
=>;0
。在python3中,3 / 4
=>;0.75
和3 // 4
=>;0
。你的算法依赖于底数除法(或整数除法),来消除数字。在相关问题 更多 >
编程相关推荐