学校熬了两个星期,在校时看到某本数学教材里讲了一个关于数字黑洞的算法,任何一串非负整数,有限的步骤处理后,终将得到123这三个数字。
例如:12345,这串数字有2个偶数,3个奇数,共5个数。于是按顺序排列成235,这串数字有1个偶数,2个奇数,共3个数。于是我们得到了123。
再如:20021025,得到628,得到303,得到123。
再如:0,得到101,得到123。
笔者最近正好刚接触了Python语言,于是便产生了用程序来计算的想法。
number = input("输入任意的非负整数:a(1) = ")
i = 1
while number != "123":
i += 1
a , b = 0 , len(number)
for n in number:
a = a + (eval(n) % 2)
number = str(b - a) + str(a) + str(b)
print("a(" + str(i) + ") = " + number + "")