睡觉觉觉得 2024-01-20 15:25 采纳率: 85.2%
浏览 12
已结题

每日一练(简单)!?

描述

2022是小东发明的一个猜数字的游戏, 每次由小东说一个数字, 你可以对这个数字作如下变化

1.对这个数字+1

2.对这个数字-1

3.让这个数字X2

经过多次变化之后, 数字就可以变成2022

请你告诉小东, 这个数字最少需要几次可以变成2022呢 ?

输入
每组数据只有一个整数 N ( 1 <= N<= 2022 ).

输出
请输出 N 变为2022的最少次数.

输入样例 1

2022
输出样例 1

0
输入样例 2

1011
输出样例 2

1
输入样例 3

2021
输出样例 3

1

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2024-01-20 15:32
    关注
    #include <iostream>
    #include <queue>
    #include <set>
    using namespace std;
    struct State {
        int num;
        int steps;
    };
    
    int minTo2022(int n) {
        queue<State> q;
        set<int> visited;
    
        q.push({n, 0});
        visited.insert(n);
    
        while (!q.empty()) {
            State curr = q.front();
            q.pop();
            if (curr.num == 2022) {
                return curr.steps;
            }
    
            // 加1
            int nextNum = curr.num + 1;
            if (visited.find(nextNum) == visited.end()) {
                q.push({nextNum, curr.steps + 1});
                visited.insert(nextNum);
            }
    
            // 减1
            nextNum = curr.num - 1;
            if (visited.find(nextNum) == visited.end()) {
                q.push({nextNum, curr.steps + 1});
                visited.insert(nextNum);
            }
    
            // 乘2
            nextNum = curr.num * 2;
            if (visited.find(nextNum) == visited.end()) {
                q.push({nextNum, curr.steps + 1});
                visited.insert(nextNum);
            }
        }
    
        return -1; // 如果无法得到结果,则返回-1
    }
    
    int main() {
        int num;
        cin >> num;
        cout << minTo2022(num) << endl;
        return 0;
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月27日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因