寻找小水王:
思路:因为三个小水王的发帖数占总帖子数量的四分之一以上,则其他人的发帖量肯定小于四分之一.以上一个题目的方法为前提采用相同即加1,不同即减1的原则,对每个id进行筛选并将结果减去四分之一的总帖子数,若结果大于0则为小水王,若小于0则为普通用户.
#include<iostream> using namespace std; void Find(int shui_ID[],int ID) { int LID[3];//小水王 int Counts[3]={0,0,0}; int i=0; for(i=0;i<ID;i++) { if(Counts[0]==0 && shui_ID[i]!=LID[1] && shui_ID[i]!=LID[2]) { Counts[0]=1; LID[0]=shui_ID[i]; } if(Counts[1]==0 &&shui_ID[i]!=LID[0] && shui_ID[i]!=LID[2]) { Counts[1]=1; LID[1]=shui_ID[i]; } if(Counts[2]==0 &&shui_ID[i]!=LID[0] && shui_ID[i]!=LID[1]) { Counts[2]=1; LID[2]=shui_ID[i]; } if(shui_ID[i]!=LID[0] && shui_ID[i]!=LID[1] && shui_ID[i]!=LID[2]) { Counts[0]--; Counts[1]--; Counts[2]--; } if(shui_ID[i]==LID[0]) { Counts[0]++; } if(shui_ID[i]==LID[1]) { Counts[1]++; } if(shui_ID[i]==LID[2]) { Counts[2]++; } } for(i=0;i<3;i++) { cout<<LID[i]<< "、"; } } int main() { cout<< "请输入用户发帖总数:"; int n; cin>>n; cout<<endl; cout<<endl; int ID[13]={5,5,5,5,2,2,2,2,3,3,3,3,4}; cout<<"用户ID为: "<<" "; cout << ID[0]; for(int i=1;i<13;i++) { cout <<" 、" << ID[i]; } cout<<endl; cout<<endl; cout<<endl; cout<<"小水王分别为:"<<" "; Find(ID,13); return 0; }
截图: