2019年第十届蓝桥杯 - 省赛 - C/C++大学B组
2022/1/12 14:04:59
本文主要是介绍2019年第十届蓝桥杯 - 省赛 - C/C++大学B组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
试题B:年号字串
小明用字母A 对应数字1,B 对应2,以此类推,用Z 对应26。对于27 以上的数字,小明用两位或更长位的字符串来对应,例如AA 对应27,AB 对 应28,AZ 对应52,LQ 对应329。 请问2019 对应的字符串是什么?
num = int(input("请输入一个数:")) i = 1 # 先将该转化当作十进制转化为二十六进制,i用来看数位 while 26**i < num: # 通过26的幂,求出换成26进制的位数 i i += 1 lt = [] # 建立列表来存放各数位上的数 for j in range(i-1, -1, -1): lt.append(num//(26**j)) # 通过求整商,求该位上的数 num -= lt[i-j-1]*26**j # 因为已存放了数,所以要减去存的数,然后继续去求 for k in range(i-1, 0, -1): # 通过for循环,然后判断除下标为0外的数,如果小于等于0,就从上一位借一,就是本位加26,上一位减一 if lt[k] <= 0: lt[k] += 26 lt[k-1] -= 1 if 0 in lt: # 这步其实是在判断首位数是否为0,因为经过上面操作后,其他位置上的数不可能为0了,并使得首位可能为0 lt.remove(0) # 如果首位为0,就移除 for i in lt: print(chr(i+64), end='') # [A-Z]的ASCII码为[65-90],然而[1-26]代表[A-Z],所有用chr(i+64)来得结果
类似与26进制,但又略不同,利用相似的关系及一些处理得结果。
答案:
试题C:数列求和
问题描述:给定数列1,1,1,3,5,9,17,…从第四项开始,每项都是前三项的和。求第20190324项的最后四位数。
lt = [1,1,1] for i in range(3,20190324): ans = lt[0]+lt[1]+lt[2] if len(str(ans)) > 4: lt.append(int(str(ans)[-4:])) # 先将ans变成字符串,然后取其后四位,并转化成整数 else: lt.append(ans) lt.pop(0) # 每次添加后,删除第一个数,方便操作,且只需要三个数就能求后一个数 print(lt[-1])
题目只要求求第20190324项的最后四位数,直接求出第20190324项,然后再取后四位数,方法不可行,因为会溢出,然而最后四位数和前面数没有关系,所以我们可以当ans小于五位数时,直接储存,当ans为五位及以上的数时,只存储其最后四位即可。(运行时间长)。
答案:
这篇关于2019年第十届蓝桥杯 - 省赛 - C/C++大学B组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用