3 solutions

  • 0
    @ 2022-3-30 11:40:48

    1333:【例2-2】Blah数集 一本通 队列_Star77777的博客-CSDN博客_一本通1333

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        int a,n,count = 1,x;
        while(cin>>a>>n){
            x = a,count = 1;//**重置x和count**
            queue<int> q1,q2;//一个队放2x+1,一个队放3x+1,每次循环自动清空
            while(count < n){
                q1.push(x * 2 + 1);
                q2.push(x * 3 + 1);
                if(q1.front() > q2.front()){
                    x = q2.front();
                    q2.pop();
                }
                else if(q1.front() < q2.front()){
                    x = q1.front();
                    q1.pop();
                }
                else{//一旦出现一个重复,如果2个队首都不删除的话,之后都会出现重复的
                    x = q2.front();
                    q1.pop();
                    q2.pop();
                }
                count++;
            }
            cout<<x<<endl;
        }
        return 0;
    }
    

    Information

    ID
    297
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    5
    Tags
    # Submissions
    23
    Accepted
    12
    Uploaded By