#HX3275. 记忆化搜索题三:3n+1问题

提交5 通过1
通过率20%
时间限制1000ms
内存限制128MiB
    ID: 12857 传统题 1000ms 128MiB 尝试: 5 已通过: 1 难度: 普及 上传者: 标签>C++c++编程题浩轩OJ迁移6级2025年寒假六级班题库

题目描述

题目描述

在正整数集上定义如下的迭代序列:

n→n/2(若 n 为偶数)  n→3n+1(若 n 为奇数)

从 10 开始应用上述规则,我们可以生成如下的序列:10→5→16→8→4→2→1。

可以看出这个序列(从 10 开始到 1 结束)共有 7 项。尽管还没有被证明,但我们普遍认为,从任何数开始最终都能迭代至 1。

给出多组询问,每组询问有一个正整数 x(x≤10^7),你需要回答从 x 开始到 1 的序列的长度。

注:序列开始生成后允许其中的项超过 10^7。

输入格式

第一行一个正整数 Q,表示询问次数。

接下来 Q 行,每行一个正整数 x_i。

输出格式

对每个询问,输出以 x_i 开始到 1 的序列长度。

输入样例 #1

10
1
24
38
23
30
5
31
38
1
44

输出样例 #1

1
11
22
16
19
6
107
22
1
17

输入样例 #2

1
1

输出样例 #2

1

输入样例 #3

1
10000000

输出样例 #3

146

数据范围与约定

1≤Q≤10^6,1≤x≤10^7;迭代中的项允许超过10^7。