寻找水王程序二
2016-05-23 18:57
162 查看
题目:
在上一次的程序中 信息学院的论坛里面,有一大“水王”不见了。出现了三个小水王,每个人的发帖数都超过了1/4。
思路:
还是上次消除的思想,我定义了三个计数器和三个初始嫌疑水王,比较三个ID,如果不相同,就排除,如果相同,那么计数器加一。嫌疑水王ID都与其它水军ID进行消除最后剩下的就是三个水王。代码:
#include "iostream" using namespace std; typedef int Type; Type find(Type *shuiwang ,int length) { int Idcou[3]={0,0,0};//计数器初始化为0 int ID[3]={0,0,0}; //水王id初始化为0 for(int i=0;i<length;i++)//找水王 { if(Idcou[0]==0 && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2]) //三个数两两相比如果不相等则消去 { Idcou[0]=1; ID[0]=shuiwang[i]; } else if(Idcou[1]==0 &&shuiwang[i]!=ID[0] && shuiwang[i]!=ID[2]) { Idcou[1]=1; ID[1]=shuiwang[i]; } else if(Idcou[2]==0 &&shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1]) { Idcou[2]=1; ID[2]=shuiwang[i]; } else if(shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2]) //四个数若是不想等,则删除这四个数 { Idcou[0]--; Idcou[1]--; Idcou[2]--; } else if(shuiwang[i]==ID[0]) { Idcou[0]++; } else if(shuiwang[i]==ID[1]) { Idcou[1]++; } else if(shuiwang[i]==ID[2]) { Idcou[2]++; } } cout<<"三个小水王分别是:"<<ID[0]<<" "<<ID[1]<<" "<<ID[2]<<endl; return 0; } int main() { Type shuiwang[] ={1,1,1,1,1,1,3,3,3,3,3,45,3,41,2,2,2,2,2,2}; find(shuiwang,20); return 0; }
相关文章推荐
- 2016.5.21模拟赛总结
- 动态规划——unique-paths-ii
- AnnotationSessionFactoryBean配置
- Java中接口对象作为参数传递
- java基础教程2:接口
- 第5章面向对象(上)
- mysql加载Sakila样例数据库
- 安卓sd卡挂载
- uva 221 Urban Elevations
- java 基础 第四章流程控制与数组
- oracle系统包——dbms_random用法及order by 小结(转)
- bzoj2424 [HAOI2010]订货
- 【学习】AAR包的打法
- time和datetime时间戳---python
- java基础教程1:简介
- java基础 第三章 数据类型和运算符
- linux gcc 编译动态类库(.so)和静态类库(.a)
- InstallShield 打包时需要注意
- C++中的STL中map用法详解
- Android 6.0 关于WiFi的改变