袁愈权


私信TA

用户名:dotcpp0787148

访问量:239

签 名:

原神玩家不会轻易认输!

等  级
排  名 651
经  验 4046
参赛次数 3
文章发表 41
年  龄 19
在职情况 学生
学  校 贺州学院
专  业 网络工程

  自我简介:

本人原神,崩铁玩家。

解题思路:

注意事项:

参考代码:

#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 人评分

  评论区

  • «
  • »