当前位置: 首页 > news >正文

课堂练习-找水桶(4.24)

题目:

三人行设计了一个灌水论坛。随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

一、设计思想

  课上老师一直强调与上次找水王的方法类似,虽然课上没能想出方法,但课下通过思考和观察找水王的程序,只需在原来基础上从一次消去两个,变为一次消去四个;三个水桶可以说是等价的,其数量均超过四分之一,所以一次消去四个后剩下的必然是三个水桶。需要变的只是从存一个水王到存三个水桶,变化方法与上次程序类似。因此只需对上次的程序复制粘贴,再稍稍修改一下即可。

二、源代码

 1 #include<iostream.h>
 2 int main()
 3 {
 4     int i,j,k=1,q=1,p=1,shuitong1,shuitong2,shuitong3;
 5     int a[100];
 6     cout<<"请输入id数:";
 7     cin>>j;
 8     cout<<"请输入id:";
 9     for(i=0;i<j;i++)
10     {
11         cin>>a[i];
12     }
13     shuitong1=a[0];
14     shuitong2=a[1];
15     shuitong3=a[2];
16     for(i=3;i<j;i++)
17     {
18         if(shuitong1!=a[i]&&shuitong2!=a[i]&&shuitong3!=a[i])
19         {
20             k=k-1;
21             q=q-1;
22             p=p-1;
23             if(k<=0&&q>0&&p>0)
24             {
25                 shuitong1=a[i+1];
26                 k=1;
27                 i++;
28             }
29             else if(k>0&&q<=0&&p>0)
30             {
31                 shuitong2=a[i+1];
32                 q=1;
33                 i++;
34             }
35             else if(k>0&&q>0&&p<=0)
36             {
37                 shuitong3=a[i+1];
38                 p=1;
39                 i++;
40             }
41             else if(k<=0&&q<=0&&p>0)
42             {
43                 shuitong1=a[i+1];
44                 k=1;
45                 shuitong2=a[i+2];
46                 q=1;
47                 i=i+2;
48             }
49             else if(k<=0&&q>0&&p<=0)
50             {
51                 shuitong1=a[i+1];
52                 k=1;
53                 shuitong3=a[i+2];
54                 p=1;
55                 i=i+2;
56             }
57             else if(k>0&&q<=0&&p<=0)
58             {
59                 shuitong2=a[i+1];
60                 q=1;
61                 shuitong3=a[i+2];
62                 p=1;
63                 i=i+2;
64             }
65             else if(k<=0&&q<=0&&p<=0)
66             {
67                 shuitong1=a[i+1];
68                 k=1;
69                 shuitong2=a[i+2];
70                 q=1;
71                 shuitong3=a[i+3];
72                 p=1;
73                 i=i+3;
74             }
75         }
76         else if(shuitong1==a[i]&&shuitong2!=a[i]&&shuitong3!=a[i])
77         {
78             shuitong1=a[i];
79             k=k+1;
80         }
81         else if(shuitong1!=a[i]&&shuitong2==a[i]&&shuitong3!=a[i])
82         {
83             shuitong2=a[i];
84             q=q+1;
85         }
86         else if(shuitong1!=a[i]&&shuitong2!=a[i]&&shuitong3==a[i])
87         {
88             shuitong3=a[i];
89             p=p+1;
90         }
91     
92     }
93     cout<<"水桶id分别为:"<<shuitong1<<","<<shuitong2<<","<<shuitong3<<endl;
94     return 0;
95 }

三、结果截图

四、实验总结

  本次实验我学到的最多的就是要学会类推,当我掌握一种方法的时候,要学会运用它去解决一系列类似的问题。首先要找到两个问题的相同点,看能否做相类似的处理,在分析后,如果能,再找到它们的不同之处,针对不同之处做出相应的修改,问题应该就能解决。

 

转载于:https://www.cnblogs.com/gaoyang110/p/4458152.html

相关文章:

  • gitolite 向 gitlab 迁移
  • 推荐搜索引擎及搜索技巧
  • AWK 学习笔记
  • Java中List的排序和List的MAp
  • 二十二,数学运算相关的类
  • javascript中的this
  • Github Pages 静态网页建站
  • 2301: [HAOI2011]Problem b
  • poj 1251 统计难题(字典树)
  • uploadify.js参数说明(转)
  • MongoDB高可用架构:Replica Sets+Sharding
  • 实验二 Java面向对象程序设计
  • Linq之求和,平均值,最大值,最小值
  • Android 中文API (70) —— BluetoothDevice[蓝牙]
  • 动态数组排序实例
  • hexo+github搭建个人博客
  • exports和module.exports
  • express如何解决request entity too large问题
  • extjs4学习之配置
  • hadoop集群管理系统搭建规划说明
  • Linux快速复制或删除大量小文件
  • mysql常用命令汇总
  • Object.assign方法不能实现深复制
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Sass 快速入门教程
  • SQLServer之创建数据库快照
  • vue脚手架vue-cli
  • 阿里云前端周刊 - 第 26 期
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 前言-如何学习区块链
  • 微信小程序开发问题汇总
  • 我是如何设计 Upload 上传组件的
  • 一份游戏开发学习路线
  • 异常机制详解
  • Linux权限管理(week1_day5)--技术流ken
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​如何防止网络攻击?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #{}和${}的区别?
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十八)三元表达式和列表解析
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (状压dp)uva 10817 Headmaster's Headache
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET Project Open Day(2011.11.13)
  • .net 按比例显示图片的缩略图
  • .NET 设计一套高性能的弱事件机制
  • .NET 中的轻量级线程安全
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • /dev下添加设备节点的方法步骤(通过device_create)