找水王
2015-06-22 15:23
267 查看
(1)设计思想
水王的帖子超过一半,在一次遍历的时候进行计数,初始值n=0;从第一个开始用m记录下ID,如果相邻两个ID一样,n就加一,m不变,如果不一样,n就减一,m不变,直到当n小于0的时候,让m为第二个ID,n=0。最后n>0,m表示的ID就是水王。
(2)源代码:
四、实验截图:
五、实验总结
其实这道题就如同消消乐一样,就是消掉几个的问题。
水王的帖子超过一半,在一次遍历的时候进行计数,初始值n=0;从第一个开始用m记录下ID,如果相邻两个ID一样,n就加一,m不变,如果不一样,n就减一,m不变,直到当n小于0的时候,让m为第二个ID,n=0。最后n>0,m表示的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]; } }
四、实验截图:
五、实验总结
其实这道题就如同消消乐一样,就是消掉几个的问题。
相关文章推荐
- 文件输入输出操作(字节流)
- 29.根据公式计算值
- 环境变量刷新方法
- Linux automake命令
- Basic Calculator
- 标准C++库中的异常类
- 宁次之死
- (译)JavaScript内存泄露
- 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)
- 第25题:返回字符串中最长数字字符串的长度
- 聊聊HTTPS和SSL/TLS协议
- JS关闭窗口或JS关闭页面的几种代码
- 【剑指offer 面试题17】合并两个排序的链表
- objc_setAssociatedObject、objc_getAssociatedObject
- 求高精度幂
- 一些基本属性随笔(不定时更新)
- photoshop画矩形款
- Using Gazebo plugins with ROS
- spi-奇怪的全双工方式
- Firebug入门指南(转)