码迷,mamicode.com
首页 > 其他好文 > 详细

找水王

时间:2015-06-22 16:20:58      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

(1)设计思想
       有三个水王都超过了发帖总数的1/4,那么剩下的就不会超过1/4,由此可以分析,如果每次比较,去除其中不相同的三个数据,那么,跟去除找到其中超过1/2的ID数的解法是一样的。
 
(2)源代码:
技术分享
 #include"iostream"
 using namespace std;
 void Data(int l,int A[]); 
 int main()
 {
     int l;//长度
     int target[3]={0,0,0};
     int ID[3]={-1,-1,-1};       
     cout<<"请输入帖子数量:";
     cin>>l;
     int * shuitong=new int [l];
     Data(l,shuitong);
     for(int i=0;i<l;i++)
     {
         
         if(target[0]==0 && shuitong[i]!=ID[1] && shuitong[i]!=ID[2])
         {
             target[0]=1;
             ID[0]=shuitong[i];
         }
         else if(target[1]==0 && shuitong[i]!=ID[0] && shuitong[i]!=ID[2])
         {
             target[1]=1;
             ID[1]=shuitong[i];
         }
         else if(target[2]==0 && shuitong[i]!=ID[0] && shuitong[i]!=ID[1])
         {
             target[2]=1;
             ID[2]=shuitong[i];
         }
         
         else if(shuitong[i]!=ID[0] && shuitong[i]!=ID[1] && shuitong[i]!=ID[2])
         {
             target[0]--;
             target[1]--;
             target[2]--;
         }
         else if(shuitong[i]==ID[0])
         {
             target[0]++;
         }
         else if(shuitong[i]==ID[1])
         {
             target[1]++;
         }
         else if(shuitong[i]==ID[2])
         {
             target[2]++;
         }
         
     }
     cout<<"水王为:"<<ID[0]<<endl;
     cout<<"水王为:"<<ID[1]<<endl;
     cout<<"水王为:"<<ID[2]<<endl;
     return 0;
 }
 void Data(int l,int A[])

{
     
       cout<<"请输入符合条件的ID列表:"<<endl;
     
       for(int i=0;i<l;i++)
     
       {
         
          cin>>A[i];
     
       }

}
技术分享
 
四、实验截图:

 技术分享

五、实验总结

其实这道题就如同消消乐一样,就是消掉几个的问题。

找水王

标签:

原文地址:http://www.cnblogs.com/1305yyf/p/4593341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!