Python 数字黑洞

Python 数字黑洞

前言

学校熬了两个星期,在校时看到某本数学教材里讲了一个关于数字黑洞的算法,任何一串非负整数,有限的步骤处理后,终将得到123这三个数字。

例如:12345,这串数字有2个偶数,3个奇数,共5个数。于是按顺序排列成235,这串数字有1个偶数,2个奇数,共3个数。于是我们得到了123。

再如:20021025,得到628,得到303,得到123。

再如:0,得到101,得到123。

笔者最近正好刚接触了Python语言,于是便产生了用程序来计算的想法。

效果图

Python 数字黑洞_第1张图片

代码

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 + "")

你可能感兴趣的:(Python)