课堂练习-找水王绪
題目:三人行設計了一個灌水論壇。信息學院的學生都喜歡在上面交流灌水,傳說在論壇上有一個“水王”,他不但喜歡發帖,還會回復其他ID發的每個帖子。坊間風聞該“水王”發帖數目超過了帖子數目的一半。
?????? 如果你有一張當前論壇的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到這個傳說中的水王嗎?(參考核心代碼)
?????? 隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的ID。據統計他們的發帖數量超過了1/4,你能從發帖列表中快速找到他們嗎?
思路:
??? 參考《課堂練習-找水王》可知,此題仍可運用消除法。只是消除的個數從1個變成了3個。需要將計數的b值定義成數組形式。
程序代碼:
#include<iostream.h> int main() {int a[10]={1,2,3,4,1,2,3,1,2,3};int b[3]={0,0,0};int c[3]={0,0,0};for (int i=1;i<10;i++){if (b[0]==0 && a[i]!=c[1] && a[i]!=c[2]){b[0]=1;c[0]=a[i];}else if (b[1]==0 && a[i]!=c[0] && a[i]!=c[2]){b[1]=1;c[1]=a[i];}else if (b[2]==0 && a[i]!=c[1] && a[i]!=c[0]){b[2]=1;c[2]=a[i];}else if (a[i]!=c[0] && a[i]!=c[1] && a[i]!=c[2]){b[0]--;b[1]--;b[2]--;}else if (a[i]==c[0]){b[0]++;}else if (a[i]==c[1]){b[1]++;}else if (a[i]==c[2]){b[2]++;}}cout<<"水王的賬號id為:"<<c[0]<<"、"<<c[1]<<"、"<<c[2]<<"。"<<endl;return 0; }程序截圖:
思考總結:
?? 題目到手時,首先想到的是計數為3的消除。但是代碼實現不理想,只好將其改為3個分別計數消除的方式。
轉載于:https://www.cnblogs.com/cainiao1hao/p/4458156.html
總結
- 上一篇: 关于photoshop
- 下一篇: Adobe Air 写文件如何换行