天天看點

找水王

要求:一個變量計數a>n/2,n ,n/2,參數指派,複雜度為n

思路:周遊統計數目,因為每個文章都有它的id,找其中的一個文章,記錄它的全部id,并與其他文章id進行比較,如果id相同,然後累加進行計數,當周遊全部進行完畢,則将最後的計數與n/2進行比較,如果不大于n/2,歸零,如果大于n/2,則記錄下棋id,

代碼:

#include<iostream>

#define MAXSIZE 100

#define OK 1

#define OVERFLOW -2

using namespace std;

typedef struct {    

int *base;    

int *top;    

int stacksize;

}SqStack; i

nt  InitStack(SqStack &S) {   

S.base=new int [MAXSIZE];   

if(!S.base) exit(OVERFLOW);   

S.top=S.base;   

S.stacksize=MAXSIZE;    

return OK;

}

int main() {    

int ID[MAXSIZE],k=0,n;  

cout<<"請輸入所有的ID号:(以-1結束)"<<endl;    

for(int j=0;;j++)     {           

          cin>>n;  

         if(n==-1)             break;            

         ID[j]=n;         k++;    

    }    

   int e;    

  SqStack S;    

InitStack(S);

for(int i=0;i<k;i++)     {                

     if(S.top==S.base)         {            

            *S.top++=ID[i];        

                                         }        

     int num=*(S.top-1);        

     if(num!=ID[i+1]&&i<k-1)         {            

                     e=*--S.top;            

                       i++;         }        

        else         {        

            *S.top++=ID[i+1];        

              }        

      if(i==k-2)         {           

           num=*(S.top-1);            

         cout<<"水王的Id号為:"<<endl;            

         cout<<num<<endl;        

                 }    

              }    

     return 0;

截圖:

找水王

總結:學會如何使用棧

上一篇: 鏡像加速
下一篇: 市場調研