軟工作業 尋找水王 拓展

來源:互聯網
上載者:User

標籤:

一、題目要求

隨著Tan-go的發展,發現,“超級水王”沒有了。統-計結-果表-明,有3個發帖很多的ID,他們的 數目都超過了 總數目N的1/4。你能從 ID列表中快速找出他們的ID嗎?                      

二、設計思想

3個水王,他們 數都超過了總數1/4,每次刪去4個不同的id,剩下的一定還是符合3個水王的發-帖數都超過1/4;

找到一個不為0的id儲存其位置,然後找到第二個不為0且不與第一個相同的id的位置,依次類推,找到第四個。然後把四個賦值為0.迴圈執行上面,知道剩餘的id都是水王的id為止

三、原始碼

#include <iostream.h>int find(int id[],int length)//把剛才寫的封裝成一個函數,以便於多次調用{    int true1=1;    int xiaoa=0;    int xiaob=0;    int xiaoc=0;    int xiaod=0;    int n1=0;    int n2=0;    int n3=0;    int n4=0;    for(int i=0;i<length;i++)    {        if(id[i]!=0)//不等於0            {            xiaoa=id[i];            n1=i;            i=length;        }    }    for(i=0;i<length;i++)    {        if((id[i]!=0)&&(id[i]!=xiaoa))        {            xiaob=id[i];            n2=i;            i=length;        }    }    for(i=0;i<length;i++)    {        if((id[i]!=0)&&(id[i]!=xiaoa)&&(id[i]!=xiaob))        {            xiaoc=id[i];            n3=i;            i=length;        }    }    for(i=0;i<length;i++)    {        if((id[i]!=0)&&(id[i]!=xiaoa)&&(id[i]!=xiaob)&&(id[i]!=xiaoc))        {            xiaod=id[i];            n4=i;            i=length;        }    }    //cout<<xiaoa<<" "<<xiaob<<" "<<xiaoc<<" "<<xiaod<<endl;    //讓他們都等於0    //xiaoa=xiaob=xiaoc=xiaod=0;    id[n1]=id[n2]=id[n3]=id[n4]=0;        return 0;}int main(void){    int id[13]={1,2,2,2,2,3,4,3,3,3,4,4,4};        //find(id,13);    //一直重複上面的函數find代碼直到數組裡面沒有四個不同的為止,也就是只剩下3個水王    int n;//重複的次數    int sum;//這個文章總共有多少條    cout<<"輸入總共總共有多少條:";    cin>>sum;    n=sum%3;    //cout<<n<<endl;    for(int j=0;j<n;j++)    {        find(id,sum);    }    //把數組中的重複的水王id去掉    //迴圈把所有數組裡面不是0的數輸出,就是3個水王    for(int i=0;i<13;i++)    {        if(id[i]!=0)            cout<<id[i]<<" ";    }    cout<<endl;    cout<<"結果中只有3個,都是水王的id;這個程式還要最佳化結果輸出,和時間複雜度"<<endl;    return 0;}

 

  

四、結果

 

五、總結

注意求餘符號%和整除符號/的區別使用
每一個參數盡量命名合 適,必要的時候加上注釋,以便於在編寫代碼的時候思路清晰,也方便以後查看
代碼編寫完畢,如果還有想法要 寫明,以便於日後查看
每次編寫出一個程式都有一種喜人的成就感,好好享受!
儘管水平不高,但一直努力!

軟工作業 尋找水王 拓展

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.