万卷网 > 题目详情
题型:编程题

角谷猜想

【问题描述】

角谷猜想是指任何一个正整数如果是偶数则变为其一半,如果是奇数则变为其 3 倍加 1,最终都将变为 1。如果为 1,则按照规则将变为 4,4 则变为 2,2则变为 1,进入无限循环。该猜想尚未得到数学证明;

本题先后输入两个正整数,输出该范围内角谷猜想变化步骤最多的数及其步骤;如果输入的第 1 个数大于第 2 个数,则交换,如 20 10,则计算出 10 到 20(含)之间变化步骤最多的数及其步骤。

【输入描述】

输入两行,第 1 行输入范围起点,回车后第 2 行输入范围的终点。

特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有 input()函数不可有提示信息。

【输出描述】

输出两行,先输出变化步骤最大的数,然后输出步骤数量。

步骤计算时,包含数本身,例如:10 的变化过程是 10,5,16,8,4,2,1,变化步骤数为 7。

【样例输入 1】

10

20

【样例输出 1】

18

21

【样例输入 2】

100

200

【样例输出 2】

171

125

【样例输入 3】

500

300

【样例输出 2】

327

144

更新时间:2023-04-18 15:16:23 |
【知识点】 CCF—GESP Python二级

相似题推荐

单选题

下面的Python 代码执行后其输出是( )。

cnt = 0
for i in range(1, 5):
    for j in range(i):
        print(j, end = "#")
    break
else:
    print(i*j)
A.

0#0#1#0#1#2#0#1#2#3#12

B.

0#0#1#0#1#2#0#1#2#3#

C.

0#

D.

1#

2026-07-31
判断题

下列Python 代码执行后将输出1#4#9#16#16 。()

for i in range(1, 5):
    for j in range(1, i + 1):
        if i * j % 10 == 0:
            break
    else:
        print(i * j, end = "#")
else:
    print(i * j)
A.正确 B.错误
2026-07-31
判断题

下面的Python 代码执行将不会有输出,因为内层循环j 总是0 开始,i * j % 10 == 0 将会被满足,执行break,故而不会执行代码中的else 子句部分。()

for i in range(1, 10):
    for j in range(i):
        if i * j % 10 == 0:
            break
else:
    print(i*j)


A.正确 B.错误
2026-07-31
判断题

执行下面的Python 代码,其语句print(N) 将被执行0 次或极多次(即死循环)。()

N = input() 
while N :
    print(N)
A.正确 B.错误
2026-07-31
单选题

下面选择项中,与Python 表达式not (x > 5 and y <= 10)等价的是( )。

A.

x <= 5 and y > 10

B.

x > 5 or y <= 10

C.

x <= 5 or y > 10

D.

not x > 5 and not y <= 10

2026-07-31
公众号
客服 反馈
顶部