解题思路:

注意事项:

参考代码:

#include"bits/stdc++.h"
using namespace std;
int main(){
    // 定义变量a, b, c和数组d,l用于记录步数
    long long a,b,c,d[10000],l;
    // 循环读取输入的a和b
    while(cin>>a>>b){
        // 初始化步数计数器为0
        l=0;
        // 定义m和n用于存储a和b的最大值和最小值
        int m,n;
        // 获取a和b中的最大值
        m=max(a,b);
        // 获取a和b中的最小值
        n=min(a,b);
        // 遍历从n到m的所有整数
        for(int i=n;i<=m;i++){
            // 将当前整数赋值给c
            c=i;
            // 初始化步数为1
            int g=1;
            a:
            // 如果c等于1,则记录步数并继续下一个整数
            if(c==1){
                d[l]=g;
                l++;
                continue;
            }
            // 如果c是偶数,则将其除以2并增加步数
            if(c%2==0){
                c=c/2;
                g++;
                goto a;
            }
            // 如果c是奇数,则将其变为3倍加1并增加步数
            if(c%2==1){
                c=3*c+1;
                g++;
                goto a;
            }
        }
        // 对记录的步数进行排序
        sort(d,d+l);
        // 输出a, b和最大步数
        cout<<a<<" "<<b<<" "<<d[l-1]<<endl;
    }
    return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论