角谷定理的运行结果和运算次数

img

代码如下
有帮助望采纳~

a = int(input())
count = 0
if a < 0:
    print('ERROR')
else:
    print(a, end=' ')
    while a > 1:
        if a % 2:
            a = a*3+1
            print(a, end=' ')
            count += 1
        else:
            a //= 2
            print(a, end=' ')
            count += 1
print('\n'+str(count))

img

def jiaogudingli(n):
    """判断奇数偶数,然后按照角谷定理执行一次"""
    if n % 2 == 0:
        return n / 2
    else:
        return 3 * n + 1

def out_num(n):
    """定义一个计数变量num,每执行一次角谷定理就加1"""
    num = 0
    while n != 1:
        num += 1
        n = jiaogudingli(n)
        print(n)
    print("经过了%d次,最终得到1" % num)

n = int(input("请输入一个整数n:"))
if n < 0:
    print('ERROR')
else:
    out_num(n)

img

如有帮助,望采纳!谢谢!

n = int(input(">>>"))

i = 0
while n != 1:
    i += 1
    if n % 2 == 0:
        n //= 2
    else:
        n += 1
print(i)