寻找水桶---软件工程

一、题目与设计思路

三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有”水桶“,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻三个“水桶”发帖数目超过了帖子数目的1/4。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水桶吗?

(1)发帖者的id存储到一个一维数组。

(2)利用“消消乐”小游戏的思想,消除元素id不同的元素,最后剩下的便是“水桶”。

(3)扩展水王的思想,一个变3个。

(4)输出结果。

二、源代码

//作者:董龙洋 日期:2015.04.23
#include<iostream.h>
void main()
{
    int Array[11];//发帖者ID
    int i;//计数变量
    int count[3];//次数
    count[0]=count[1]=count[2]=0;
    int st[3];///水桶
    cout<<"**************寻找水桶的小程序****************"<<endl;
    cout<<"输入发帖者id(11个,id用整数代替):"<<endl;
    for(i=0;i<11;i++)
    {
        cin>>Array[i];
    }
    for(i=0;i<11;i++)
    {
        if(count[0]==0)
        {
            st[0]=Array[i];
            count[0]=1;
        }
        else if(count[1]==0)
        {
            st[1]=Array[i];
            count[1]=1;
        }
        else if(count[2]==0)
        {
            st[2]=Array[i];
            count[2]=1;
        }
        else if(st[0]==Array[i])
        {
            count[0]++;
        }
        else if(st[1]==Array[i])
        {
            count[1]++;
        }
        else if(st[2]==Array[i])
        {
            count[2]++;
        }
        else
        {
            count[0]--;
            count[1]--;
            count[2]--;

        }
    }
    cout<<"三个水桶的id是:"<<st[0]<<"  "<<st[1]<<"   "<<st[2]<<endl;
}


 
 

三、运行结果截图

四、心得体会

题目很简单,主要是怎样更加优化,是时间复杂度降低。借用水王的代码优化,那么消消乐的思想就很适用。编程实现就好了。

时间: 2024-08-24 22:41:39

寻找水桶---软件工程的相关文章

软件工程随堂小作业——寻找“水桶”(C++)

一.设计思想 思路与寻找一个水王相似,这次只是计数器和嫌疑人变量都设置为数组.每次选取一个ID与三个嫌疑人比较,若有相同则计数:若三个都不相同,则三个计数器都减一.若减为0,则从新赋值给嫌疑人. 二.源代码 1 // 水桶.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "iostream.h" 6 #define M

软件工程——寻找水桶

1.题目 三人行设计了一个灌水论坛.随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 2.设计思路 沿用上个水王的思想,将三个水桶看成一个整体,就是给三个不一样的ID赋值三个变量,有一样的就加一,都不一样,三个变量都减一,有变量减到0就重新赋值. 3.源码 #include<iostream.h> #include "stdlib.h" int main() { int leng

软件工程课堂作业——寻找水王2

一.题目 随着论坛的发展,管理员发现“水王”没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了总和的1/4.你能从发帖列表中快速找到他们吗? 二.设计思想 根据三个水王号的ID数均超过四分之一可以知道只要非水王号出现一次,水王号ID必定都对应会出现一次.则目前判断为水王号的ID出现则对应次数加一,非水王号出现一次则目前判断为水王号出现次数的均减一.运用这种算法则需要判断输入的ID号是否符合条件,通过判断最终判断出来的ID号的出现的次数之差可以判断出是否满足“发帖数量超过了

软件工程课堂作业——寻找“水王”

一.题目 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 二.设计思想: 由于该“水王”发帖数目超过了帖子数目的一半,可以通过相邻两个帖子的作者ID是否相同来寻找.如果相邻两个ID不同,则将两个ID略过:若相等,则判断之前是否有怀疑是“水王”的ID,如

软件工程随堂小作业—— 寻找“水王”(C++)

一.设计思路 (1)输入发帖ID记录表 (2)从第一个ID开始,与后续的发帖ID进行比较,若相同计数器则加一,否则减一.若计数器的数值被减为零,则重新选取当前ID开始记录比较. (3)输出结果 二.源代码 1 // shuiwang.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "iostream.h" 6 #def

软件工程——寻找水王

1.题目 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 2.思路 从第一个ID开始,与后续的发帖ID进行比较,若相同计数器则加一,否则减一,减到0后重新赋值 3.源码 #include "iostream.h" #define MAXSIZ

软件工程 寻找小水王

设计思想: 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4.已知小水王有三个,而且他们每个人发帖数均超过了1/4,按照id给所有帖子排序,这样同id的帖子就聚集在一起,由于每个水王的发帖数均大于1/4,所以可以根据每个id在数组中的位置找出三个水王. 代码: 实验结果:

敏捷软件开发与传统软件工程

敏捷软件开发与传统软件工程 北航计算机学院 14061157 李奕成 引言 软件开发过程是软件工程中相当重要的一环.一个正确.高效的软件过程能够提高软件工程活动的稳定性.可控性和有组织性.但是,并不存在一种软件过程能够完美的适应所有的软件工程情况.因此,在不同情况下选择合适的软件开发过程显得尤为重要.现代软件工程方法必须是"灵活"的,也就是要求软件工程活动.控制以及工作方法适合于项目团队和要开发的产品. 说到软件工程.敏捷开发,就要提到软件过程的发展历史.20世纪60年代,不存在现代意

软件工程心得体会

对于软件工程的认识. 软件工程是把系统的.有序的.可量的方法应用到软件的开发.运营和维护上的过程.它是一门实践性很强的学科,所以在实际的软件研制过程中,人员的素质占据着非常重要的地位.在具体的软件工程项目中,人员的角色定位,任务分配,以及团队内成员之间的协调配合是非常重要的.人员的角色定位以及任务分配,是属于技术层面的资源配置,软件过程的各个环节,都必须有最合适的人选,该环节才能得到最有效的技术资源,而整个团队内成员之间的配合协调,则是属于管理层面的资源整合,通过充分调度软件生产的各个环节,精细