题目要求:
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
设计思路:
通过查找,每次从列表中除去两个不一样的ID,最后就可以得出这个ID,如果下一个一样,那么用一个变量记录这个次数,把次数+1,遇见不一样的-1。
代码实现:
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int date[3]; 6 int count[3] = {0}; 7 int input[100]; 8 cout<<"请输入ID个数:"<<endl; 9 int t,num; 10 cin>>num; 11 cout<<"请输入ID:"<<endl; 12 for(int i=0;i<num;i++) 13 { 14 cin>>input[i]; 15 } 16 bool flag = false; 17 for (int i = 0;i < num;i++) 18 { 19 flag = false; 20 for (int j = 0;j < 3;j++) 21 { 22 if (count[j] == 0) 23 { 24 continue; 25 } 26 if (date[j] == input[i]) 27 { 28 count[j]++; 29 flag = true; 30 } 31 } 32 if (flag == true) 33 { 34 continue; 35 } 36 for (int j = 0;j < 3;j++) 37 { 38 if (count[j] == 0) 39 { 40 date[j] = input[i]; 41 count[j]++; 42 flag = true; 43 break; 44 } 45 } 46 if (flag==true) 47 continue; 48 for (int j = 0;j < 3;j++) 49 50 { 51 count[j]--; 52 } 53 } 54 cout<<"水王ID为: "<<endl; 55 cout<<date[0]<<" "<<date[1]<<" "<<date[2]<<endl; 56 57 }
运行结果:
实验总结
检验一个问题是否掌握就可能就是再出一个同类型但是比原来高级的题来验证,所以我觉得我还是学的不够深入,没有理解到位。见微知著,做学问,一定要深入,这是这次实验得到的最宝贵的教训。其实这道题还真是跟水王问题非常像,就如同消消乐一样,就是消掉两个还是消掉三个的问题。