1333:【例2-2】Blah數集


1333:【例2-2】Blah數集

 

注意是數組,答案數組中不能有重復數字

  q數組是存儲答案的

 

代碼:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
using namespace std;
int a,n;
int q[1000000];
void work(int a,int n)
{
    int rear=2;
    q[1]=a;    //a一定是第一個數字
    int two=1,three=1;
    while(rear<=n)
    {
        long long t1=q[two]*2+1,t2=q[three]*3+1;
        int t=min(t1,t2);   //保證升序,先存一個小的
        if(t1<t2) two++;    //確定哪一個情況可以擴列
        else  three++;
        if(t==q[rear-1])    //去重處理
continue; //continue就是忽略下面的指令,回到循環開始的while
q[rear++]=t; //rear++,先調用,后自加,也可以理解為下面兩行: // q[rear]
=t; // rear++; } cout<<q[n]<<endl; } int main() { while(cin>>a>>n) work(a,n); //由於你不知道到底要處理多少組數據,所以當輸入時就工作一次 return 0; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM