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

[10月考试] D

[10月考试] D

题目描述

有一个文件正在被下载,当前是第 nnn 分钟。

给定每分钟文件下载的百分比 aia_iai(输入中省去 %),按照每 5%5\%5% 输出一格并向下取整的方式,输出每分钟下载的进度条,第 iii 行代表第 iii 分钟,输出格式见样例。

对于所有数据,1≤n≤201\leq n\leq 201n200≤ai≤1000\leq a_i\leq 1000ai100,保证 aia_iai 单调不降。

输入格式

输入共 222 行。

111 行输入 111 个正整数 nnn

222 行输入 nnn 个正整数 a1,a2,…,ana_1,a_2,\ldots ,a_na1,a2,,an

输出格式

输出共 nnn 行,每行输出一个字符串代表下载进度。

样例 #1

样例输入 #1

5
0 12 48 70 99

样例输出 #1

                    |
--                  |
---------           |
--------------      |
------------------- |

样例 #2

样例输入 #2

2
1 100

样例输出 #2

                    |
--------------------|

提示

对于 20%20\%20% 的数据,n=1n=1n=1

对于 50%50\%50% 的数据,n≤5n\leq 5n5

对于所有数据,1≤n≤201\leq n\leq 201n200≤ai≤1000\leq a_i\leq 1000ai100,保证 aia_iai 单调不降。

这道题目要求我们模拟文件下载进度条的输出,给定每分钟的下载进度百分比 a_i,并按照每 5% 为一格,向下取整的方式输出进度条。每行输出一个进度条的状态。

解题思路

  1. 进度条的表示

    • 每 5% 显示一格。也就是说,进度 0% 对应进度条的起点 |5% 对应 |----100% 对应满格的 |--------------------|(20格,最大)。
  2. 如何映射百分比到进度条

    • 对于每个给定的百分比 a_i,我们需要计算该百分比所对应的格数。具体来说,计算公式是:

      格数=ai/5

      这表示将 a_i 除以 5,取整后得到的格数。例如:

      • 12% 对应 2 格:12 // 5 = 2
      • 48% 对应 9 格:48 // 5 = 9
  3. 输出格式

    • 每行进度条的起点是 |
    • 根据格数,使用 - 来表示下载进度。
    • 进度条的长度固定为 20 格,因此,剩下的格子用空格填充。

具体步骤

  1. 读取输入:首先读取 n(下载进度的分钟数),然后读取进度百分比 a_i
  2. 对于每个进度百分比,计算对应的格数。
  3. 根据格数构建进度条并输出。
#include <iostream>
#include <vector>
using namespace std;int main() {int n;cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {cin >> a[i];
}for (int i = 0; i < n; i++) {int percent = a[i];int progress = percent / 5;  // 每5%表示一格// 构造进度条string bar = "|";for (int j = 0; j < progress; j++) {bar += "-";}for (int j = progress; j < 20; j++) {bar += " ";}bar += "|";// 输出进度条cout << bar << endl;
}return 0;
}

时间复杂度

  • 由于每分钟我们需要进行一次进度计算,并构造一个长度为 20 的进度条字符串,时间复杂度为 O(n),其中 n 是进度条的分钟数(1 ≤ n ≤ 20)。

因此,时间复杂度是 O(n),对本题来说是非常高效的。

总结

  • 这道题主要考察了如何将百分比映射到进度条的具体实现。
  • 通过简单的字符串操作,我们可以高效地构建并输出每分钟的下载进度条。
http://www.dtcms.com/a/301030.html

相关文章:

  • 【lucene】MMapDirectory 在FSDirectory基础上干了啥?
  • 链表算法综合——重排链表
  • KNN 算法中的各种距离:从原理到应用
  • D3.js的力导向图使用入门笔记
  • AI行业热点抓取和排序系统实现案例
  • [Linux入门] Linux 远程访问及控制全解析:从入门到实战
  • Jmeter的元件使用介绍:(七)后置处理器详解
  • 10.迭代器模式
  • 设计模式(二)创建型:工厂方法模式详解
  • 设计模式(十一)结构型:外观模式详解
  • rename系统调用及示例
  • docker-desktop引擎启动失败报wsl --update
  • 推荐系统学习
  • QML视图组件:ListView、GridView、TableView、PathView
  • MyBatis Plus 乐观锁与悲观锁
  • 《C++ list 完全指南:list的模拟实现》
  • NodeJs接入腾讯云存储COS
  • MySQL 用户管理
  • 第六章 JavaScript 互操(3)JS调用.NET
  • Django5.1(131)—— 表单 API二(API参考)
  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • Java面试宝典:MySQL索引
  • 2-4、Dify案例实践—基于工作流构建商城用户评价智能分析系统
  • PyTorch武侠演义 第一卷:初入江湖 第7章:矿洞中的计算禁制
  • 基于mnn架构在本地 c++运行llm与mllm模型
  • 数据结构基本内容(第四篇:队列)
  • 2025.7.27
  • Java面试题及详细答案120道之(061-080)
  • C++算法竞赛篇(六)一维数组题型讲解
  • 【工具】python汇总发票(含源码)