• 课堂测试-找水王


    题目:已知帖子数量和ID号,水王的发帖数超过帖子数的一半,要求快速找出水王

    设计思想:快速找出就要求算法必须时间复杂度小,本题利用相同则保留不同则消除的思想,快速找出帖子数最多的水王

    代码:

    #include<iostream>
    using namespace std;
    #define N 100
    int main()
    {
        int ID[N];//发帖者ID
        int i,count=0,sw,a;//计数变量,相同次数,水王,帖子的数量
        cout << "**************一起来找水王****************" << endl;
        cout << "输入帖子的数量" << endl;
        cin >> a;
        if (a <= 0)
        {
            cout << "输入的帖子数量不正确,请重新输入" << endl;
            cin >> a;
            while (a < 0)
            {
                cout << "输入的帖子数量不正确,请重新输入" << endl;
                cin >> a;
            }
        }
        cout << "输入发帖者id号:" << endl;
        for (i = 0; i<a; i++)
        {
            cin >> ID[i];
        }
        for (i = 0; i<a; i++)//遍历a次
        {
            if (count == 0)
            {
                sw = ID[i];
                count = 1;
            }
            else
            {
                if (sw == ID[i])//相同则计数加1,不同则减一
                {
                    count++;
                }
                else
                    count--;
            }
        }
        cout << "水王的id是:" << sw << endl;
        return 0;
    }

    测试结果:
    ===== ===== ===== ===== =====
    Compiling...
    Compiling done.
    ===== ===== ===== ===== =====
    Doing Unit Test Case 01

    输入帖子数量:

    显示:输入的帖子数量不正确
    Done: 01.
    ===== ===== ===== ===== =====
    Doing Unit Test Case 02
    输入帖子数量:
    10
    输入发帖者ID号:
    11 23 32 54 23 11 11 11 11 11
    水王的ID是:11
    Done: 02.

    ALL DONE.
    ===== ===== ===== ===== =====

    总结:这次程序实现并不难,但要寻求最快,必须要选取更好的算法,通过这次测试,感觉自己视野打开了,要根据不同问题,自己设计选取最合适的算法。

    开发日志:

    星期 听课 上网 读书 编程 总计
    周一 2 1   1 4
    周二          
    周三   1     1
    周四 2   1   3
    周五       2 2

    时间记录日志:

    日期 开始时间 结束时间 休息时间 工作时间 活动内容
    5/17 19:00 21:10 10 120 查资料
    5/18 14:00 15:10 10 120 看书
    5/19 14:00 17:30 30 180 编程
    5/20 14:20 16:20 0 120 编程 写博客

    缺陷记录日志:

    这次程序思想很重要,一开始自己想的是遍历,后来在老师的提醒下,才明白了更好的算法。

  • 相关阅读:
    乐视电视修改五大图标
    Google Home Mini配置失败解决办法
    使用FreeHttp任意篡改http报文 (FreeHttp使用及实现说明)
    IDEA和VS快捷键对比
    C# 中的字符串内插
    在线运行.NET代码
    在Windows服务器安装ss服务端用于逃脱公司行为管理
    .NET Core的代码安全分析工具
    用DotNetDetour HOOK .net类库
    C#代码获取另一程序的错误提示,并关闭窗口。
  • 原文地址:https://www.cnblogs.com/lvstudy/p/5513714.html
Copyright © 2020-2023  润新知