[GESP样题 三级] 进制转换、春游、密码合规

news2024/11/25 6:29:51

B3849 [GESP样题 三级] 进制转换

题目

小美刚刚学习了十六进制,她觉得很有趣,想到是不是还有更大的进制呢?在十六进制中,用 A 表示 10、F 表示 15。如果扩展到用 Z 表示 35,岂不是可以表示 36进制数了嘛!所以,你需要帮助她写一个程序,完成十进制转 R进制(2≤R≤36)的工作。

输入两行,第一行包含一个正整数 N,第二行包含一个正整数 R,保证 1≤N≤10^6。

输出一行,为 N 的 R 进制表示。

 运行代码
#include <iostream>
#include <string>
using namespace std;
string convert(int num, int base) {
    string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (num == 0) 
    return "0";
    string f = "";
    while (num > 0) {
        int r = num % base;
        f = digits[r] + f;
        num /= base;
    }
    return f;
}
int main() {
    int N, R;
    cin >> N >> R;
    cout << convert(N, R) << endl;
    return 0;
}
思路 

首先定义了一个字符串digits来存储0-9以及A-Z,作为各个进制位上的字符表示。然后定义了一个函数convert,它接受两个参数:要转换的十进制数num和目标进制base。在该函数内部,通过循环不断地对num除以base取余,并将余数对应的字符添加到结果字符串的前面,直到num变为0为止。最后,在主函数中读取输入的NR,调用convert函数并输出结果。

B3842 [GESP202306 三级] 春游

题目

老师带领同学们春游。已知班上有 NN 位同学,每位同学有从 0 到 N−1 的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出自己的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗 ?。

输入包含 2行。第一行包含两个整数 N 和 M,表示班级有 N 位同学,同学们共有 M 次报出编号。约定 2≤N,M≤1000。第二行包含 M 个整数,分别为 M 次报出的编号。约定所有编号是小于 N 的非负整数。

输出一行。如果所有同学都到达,则输出 N;否则由小到大输出所有未到达的同学编号,空格分隔。

 运行代码
#include <iostream>
#include <vector>
using namespace std;
int main() {
    int N, M;
    cin >> N >> M;
    vector<bool> a(N, false); // 初始化一个布尔型数组,默认所有同学都未到达
    for (int i = 0; i < M; ++i) {
        int id;
        cin >> id;
        a[id] = true; // 将报出编号的同学标记为已到达
    }
    bool all = true;
    for (int i = 0; i < N; ++i) {
        if (!a[i]) { // 如果有同学未到达
            all = false;
            cout << i << " ";
        }
    }
    if (all) {
        cout << N;
    }
    cout << endl;
    return 0;
}
思路

使用一个大小为 N 的布尔型数组(或哈希表)来记录每个编号是否至少被报出过一次。遍历报出的编号,将相应位置的布尔值设为 true。最后,遍历这个数组,找出所有值为 false 的下标,即为未到达的同学编号,并按照从小到大的顺序输出。

B3843 [GESP202306 三级] 密码合规

题目

网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求 :。

  1. 只能由a∼z 之间 2626 个小写字母、A∼Z 之间 26 个大写字母、0∼9 之间 10 个数字以及 !@#$ 四个特殊字符构成。

  2. 密码最短长度:6 个字符,密码最大长度 :12 个字符。

  3. 大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。

输入一行不含空格的字符串。约定长度不超过 100。该字符串被英文逗号分隔为多段,作为多组被检测密码。

输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输出。

运行代码
import re
def check_password(password):
    # 规则1: 密码只能由指定字符组成
    if not re.fullmatch(r'[a-zA-Z0-9!@#$]*', password):
        return False
    # 规则2: 密码长度限制
    if len(password) < 6 or len(password) > 12:
        return False
    # 规则3: 至少包含两种类型(大小写字母、数字)以及至少一个特殊字符
    has_lower = bool(re.search(r'[a-z]', password))
    has_upper = bool(re.search(r'[A-Z]', password))
    has_digit = bool(re.search(r'\d', password))
    has_special = bool(re.search(r'[!@#$]', password))
    types_count = has_lower + has_upper + has_digit
    if types_count < 2 or not has_special:
        return False
    return True
def main():
    passwords_input = input().strip()
    passwords_list = passwords_input.split(',')
    valid_passwords = []
    for password in passwords_list:
        if check_password(password):
            valid_passwords.append(password)
    print('\n'.join(valid_passwords))
if __name__ == "__main__":
    main()
思路

首先定义了一个check_password函数,用来检查单个密码是否符合规则。它使用正则表达式来检查密码字符的合法性、长度以及是否包含至少两种类型的字符(大小写字母和数字)和至少一个特殊字符。然后,main函数读取输入的密码串,将其按逗号分隔成列表,遍历列表并对每个密码调用check_password进行检查。如果密码有效,就将其添加到valid_passwords列表中。最后,程序输出所有合规的密码,每行一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1652604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java spring 09 Bean的销毁过程 上 在docreatebean中登记要销毁的bean

1.Bean销毁是发送在Spring容器关闭过程中的 AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class);UserService userService (UserService) context.getBean("userService");userService.test();// 容器关闭cont…

2W 6KVDC 隔离双输出 DC/DC 电源模块——TPJ-2W 系列

TPJ-2W一款有超高隔离电压的电源模块&#xff0c;主要用于隔离度要求高的如医疗仪器和设备&#xff0c;特别在安全设备的应用中起着相当重要的作用&#xff0c;它的绝缘设计完全能满足对隔离电压要求超过6KVDC的应用&#xff0c;在额定负载2W的情况下&#xff0c;工作温度范围为…

基于springboot实现夕阳红公寓管理系统项目【项目源码+论文说明】

基于springboot实现夕阳红公寓管理系统演示 摘要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是…

ES6-自学01

调用方法读取文件&#xff1a;如果失败就throw抛出err,成功则抛出data 2.使用promise封装&#xff0c;如果失败就改变状态为 reject(err) 如果成功就 resolve(返回成功的值) &#xff0c;然后then,就可以获取返回的值&#xff0c;值toString&#xff08;&#xff09;方法来把…

ShowMeAI | 这是我们知道的,关于〖Suno 〗和〖AI音乐〗的一切

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; Suno 是一款AI音乐创作工具&#xff0c;可以通过提示词和设置生成一段音乐&#xff0c;而且可以包含歌词和人声 (这非常难得)。在经历了两年探索之后…

银河麒麟QT项目打包详细教程

银河麒麟QT项目打包详细教程 一、QT项目打包 下载linuxdeployqt&#xff0c;下载地址&#xff1a;https://github.com/probonopd/linuxdeployqt/releases 安装Linuxdeployqt 2.1 为了安装方便&#xff0c;将下载下来的文件名称改短些 mv linuxdeployqt-6-x86_64.AppImage lin…

zer0pts CTF 2022 -- kRCE

文章目录 前言题目分析漏洞利用提权shell exp 前言 这道题目非常有意思&#xff0c;看似 kernel pwn&#xff0c;但又是一个非常规的 kernel pwn&#xff0c;通过这个题目也学到了很多&#xff0c;这里主要参考 Will’s Root 的 wp 题目分析 作者写了一个具有多个漏洞的驱动…

工厂车间冷风机降温通风措施

冷风机的工作原理主要基于蒸发冷却原理&#xff0c;以下是其具体的工作流程&#xff1a; 空气吸入&#xff1a;当冷风机开始工作时&#xff0c;首先通过风扇将车间内的热空气吸入冷风机的机体内。蒸发冷却&#xff1a;冷风机内部有一个或多个湿帘或水帘&#xff0c;当热空气通…

打破次元壁!Stable Diffusion将现实影像转成二次元动画,推特转赞10k+,网友:都可以重做《神奇宝贝》动漫了

破次元壁计划已启动&#xff01; 就在最近&#xff0c;有网友分享了一个用Stable Diffusion打造二次元动画的工具&#xff0c;直接在网上爆火。 先快来看一波效果。 万物皆可妙化为二次元&#xff0c;耳机也可蜕变成小兔兔&#xff1a; 瞧&#xff01;连易拉罐的拉环也化身成…

数字孪生项目的开发

数字孪生项目开发涉及多学科知识和技术&#xff0c;因此存在以下技术难点&#xff0c;数字孪生项目开发是一项复杂的工程&#xff0c;需要攻克多项技术难关。随着技术的不断发展&#xff0c;数字孪生技术将得到更加广泛的应用&#xff0c;并在各行各业发挥更大的作用。北京木奇…

顶顶通呼叫中心中间件电话黑名单系统介绍

黑名单 有显示成功和失败导入数&#xff0c;可以禁用也可以启用&#xff0c;如果禁用状态就是不使用这一组黑名单&#xff0c;多个号码核验就是验证号码存不存在。黑名单只有管理员和操作员可以配置&#xff0c;租户是看不到黑名单的。但是黑名单跟租户是互通的。 可以单个号码…

windows下安装最新的nginx

1、进入官网下载地址 https://nginx.org/en/download.html#/ 2、点击这里最新的版本下载 3、&#xff08;不要直接运行解压的nginx.exe&#xff09;,应这样操作WindowsR&#xff0c;输入CMD&#xff0c; 4、查看一下自己解压后的位置&#xff0c;我的是在E盘 5、输入对应的W…

ADOP带你了解:长距离 PoE 交换机

您是否知道当今的企业需要的网络连接超出了传统交换机所能容纳的长度&#xff1f;这就是我们在长距离 PoE 交换机方面的专业化变得重要的地方。我们了解扩展网络覆盖范围的挑战&#xff0c;无论是在广阔的园区还是在多栋建筑之间。使用这些可靠的交换机&#xff0c;我们不仅可以…

百川2模型解读

简介 Baichuan 2是多语言大模型&#xff0c;目前开源了70亿和130亿参数规模的模型。在公开基准如MMLU、CMMLU、GSM8K和HumanEval上的评测&#xff0c;Baichuan 2达到或超过了其他同类开源模型&#xff0c;并在医学和法律等垂直领域表现优异。此外&#xff0c;官方还发布所有预…

【编程题-错题集】连续子数组最大和(动态规划 - 线性 dp)

牛客对应题目链接&#xff1a;连续子数组最大和_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 简单线性 dp。 1、状态表示 dp[i] 表示&#xff1a;以 i 位置为结尾的所有子数组中&#xff0c;最大和是多少。 2、状态转移方程 dp[i] max(dp[i - 1] arr[i], arr[i]) 3、返回…

HTML批量文件上传2——进度条显示

作者&#xff1a;私语茶馆 非常多的云应用中需要上传文本&#xff0c;包括图片&#xff0c;文件等等&#xff0c;这些批量文件上传&#xff0c;往往涉及到进度条显示&#xff0c;多文件上传等&#xff0c;这里分享一个非常好的案例&#xff0c;来自BootStrapfriendly.com&#…

6W 1.5KVDC、3KVDC 隔离宽电压输入 DC/DC 电源模块——TP06DA 系列

TP06DA系列电源模块额定输出功率为6W&#xff0c;外形尺寸为31.75*20.32*10.65&#xff0c;应用于2:1及4:1电压输入范围 4.5-9、9V-18V、18V-36V、36V-72V、9V-36V和18V-72VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出短路保护等功能&#xff0c;可广…

经验浅谈!伦敦银如何交易?

近期&#xff0c;伦敦银价格出现很强的上涨&#xff0c;这促使一些新手投资者进入了市场&#xff0c;但由于缺乏经验&#xff0c;他们不知道该怎么在市场中交易&#xff0c;下面我们就从宏观上介绍一些方法&#xff0c;来讨论一下伦敦银如何交易。 首先我们要知道&#xff0c;要…

[C/C++] -- 装饰器模式

装饰器模式是一种结构型设计模式&#xff0c;它允许在不改变原始对象的基础上动态地扩展其功能。这种模式通过将对象包装在装饰器类的对象中来实现&#xff0c;每个装饰器对象都包含一个原始对象&#xff0c;并可以在调用原始对象的方法之前或之后执行一些额外的操作。 装饰器…

windows环境下 postgresql v12 绿色版+postgis 3.4.1版本配置,空间数据库迁移

windows环境下 postgresql v12 绿色版+postgis 3.4.1版本配置,空间数据库迁移 一、软件环境 操作系统:windows 11 pg免安装版数据库:postgresql-12.17-1-windows-x64-binaries.zip 下载地址:https://get.enterprisedb.com/postgresql/postgresql-12.18-1-windows-x64-bina…