5.8 计算wifi 密码 | 您所在的位置:网站首页 › 酒店房间号排列图 › 5.8 计算wifi 密码 |
第1关:计算整数幂
任务描述
小明在武汉理工大学读书,学校的wifi密码是楼栋号的房间号次幂的前16位的16进制表示,且其中字母均为大写。本项目就带你一步一步的破解这个密码。 本关任务:编写一个能计算整数的整数次幂的小程序。 相关知识为了完成本关任务,你需要掌握: 1.幂运算函数 幂运算函数内置函数pow(base, exp[, mod]) 返回 base 的 exp 次幂;如果 mod 存在,则返回 base 的 exp 次幂对 mod 取余(比 pow(base, exp) % mod 更高效)。 两参数形式 pow(base, exp) 等价于乘方运算符: base**exp。 print(pow(2,10))输出: 1024 编程要求根据提示,在右侧编辑器补充代码,输入楼栋号和房间号,计算并输出楼栋号的房间号次幂。 测试说明平台会对你编写的代码进行测试: 测试输入: 4 # 4号楼 102 # 102号房间 预期输出: 25711008708143844408671393477458601640355247900524685364822016 代码如下: building_num = int(input()) room_num = int(input()) print(pow(building_num,room_num)) 第2关:输出幂运算结果的前n位数 任务描述小明在武汉理工大学读书,学校的wifi密码是楼栋号的房间号次幂的前16位的16进制表示,且其中字母均为大写。本项目就带你一步一步的破解这个密码。 本关任务:编写一个能输出一个整数的整数次幂的前n位数的小程序。 相关知识为了完成本关任务,你需要掌握: 1.整数转字符串 2.字符串切片 整数转字符串str(number)可以将整数num转为字符串类型,后续可用字符串方法进行操作。 print(str(5070602400912917605986812821504))输出: '5070602400912917605986812821504' 字符串切片s[m: n] 可以返回字符串s中序号从m开始(包括m)到n结束(包括n)的子字符串。m省略时从第一个字符开始,n省略时到最后一个字符结束(包括最后一个字符) print('5070602400912917605986812821504'[:12])输出: 507060240091 编程要求根据提示,在右侧编辑器补充代码,在输入楼栋号和房间号,计算并输出楼栋号的房间号次幂的前16位数字。 测试说明平台会对你编写的代码进行测试: 测试输入: 4 # 4号楼 102 # 102号房间 预期输出: 2571100870814384 a = eval(input()) b = eval(input()) print(str(pow(a, b))[:16]) 第3关:整数字符串转为十六进制数 任务描述小明在武汉理工大学读书,学校的wifi密码是楼栋号的房间号次幂的前16位的16进制表示,且其中字母均为大写。本项目就带你一步一步的破解这个密码。 本关任务:编写一个能输出一个整数的整数次幂的前n位数转为十六进制数的小程序。 相关知识为了完成本关任务,你需要掌握: 1.整数字符串转整数 2.整数转十六进制 整数字符串转整数int(str)可以将整数字符串str转为整数类型,后续可用整数方法或函数进行运算。 print(int('507060240091'))输出: 507060240091 整数转十六进制内置函数hex(x)可以将整数转换为以“0x”为前缀的小写十六进制字符串。 print(hex(507060240091))输出: 0x760f253edb 编程要求根据提示,在右侧编辑器补充代码,在输入楼栋号和房间号,计算并输出楼栋号的房间号次幂的前16位数字的十六进制表示。 测试说明平台会对你编写的代码进行测试: 测试输入: 4 # 4号楼 102 # 102号房间 预期输出: 0x9226712162ab0 a = eval(input()) b = eval(input()) c = str(pow(a, b))[:16] print(hex(int(c))) 第4关:字母转大写本关任务:编写一个能输出一个整数的整数次幂的前n位数转为十六进制数的且使出现的字母都是大写表示的小程序。 相关知识为了完成本关任务,你需要掌握: 1.字母转大写 整数字符串转整数str.upper()返回原字符串str的副本,其中所有区分大小写的字符均转换为大写。 注意,括号中无参数,这个方法作用在点前面的字符串上,将前面字符串中的小写字母转为大写,其他字符不变。 print('0x9226712162ab0'.upper())输出: 0X9226712162AB0 编程要求根据提示,在右侧编辑器补充代码,在输入楼栋号和房间号,计算并输出楼栋号的房间号次幂的前16位数字的十六进制的大写表示。 测试说明平台会对你编写的代码进行测试: 测试输入: 4 # 4号楼 102 # 102号房间 预期输出: 0X9226712162AB0 a=eval(input()) b=eval(input()) print(hex(int(str(pow(a,b))[:16])).upper()) 第5关:计算wifi密码 任务描述小明在武汉理工大学读书,学校的wifi密码是楼栋号的房间号次幂的前16位的16进制表示,且其中字母均为大写,结果中不包括十六进制数的引导符“0X”。这一关你将完善自己的程序,使之可以破解所有按这个规则设置的密码。 本关任务:编写一个能输出一个整数的整数次幂的前n位数转为十六进制数的且使出现的字母都是大写表示的小程序。 相关知识为了完成本关任务,你需要掌握: 1.切片 字符串切片s[m: n] 可以返回字符串s中序号从m开始(包括m)到n结束(包括n)的子字符串。 m省略时从第一个字符开始 n省略时到最后一个字符结束(包括最后一个字符) print('0XAE0B158B47387'[2:])输出: 507060240091 编程要求根据提示,在右侧编辑器补充代码,在输入楼栋号、房间号和截取数字的位数n,计算并输出楼栋号的房间号次幂的前n位数字的十六进制的大写表示。 测试说明平台会对你编写的代码进行测试: 测试输入: 4 # 4号楼 102 # 102号房间 16 # 截取数字位数 预期输出: 9226712162AB0 代码如下: building_num = int(input()) room_num = int(input()) n = int(input()) num = pow( building_num, room_num ) print(hex(int(str(num)[:n]))[2:].upper()) |
CopyRight 2018-2019 实验室设备网 版权所有 |