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

PAT乙级_1117 数字之王_Python_AC解法_无疑难点

注意事项:

       因为笔者的编程水平以自学为主,代码结构可能比较混乱、变量命名可能不够规范。

       文章中的AC解法不一定最优,并且包含笔者强烈的个人风格,不喜勿喷,但欢迎在评论中理性讨论或者给出提升建议。

       文章中提到的疑难点仅为个人在刷题过程中所遇到的情况,如有读者存在其他疑难点,欢迎在评论中加以补充,笔者会尽量将其加入到文章内容中。


合集: 

 PAT乙级_合集_Python_AC解法


 题目:

1117 数字之王

题目描述: 

给定两个正整数 N1​<N2​。把从 N1​ 到 N2​ 的每个数的各位数的立方相乘,再将结果的各位数求和,得到一批新的数字,再对这批新的数字重复上述操作,直到所有数字都是 1 位数为止。这时哪个数字最多,哪个就是“数字之王”。

例如 N1​=1 和 N2​=10 时,第一轮操作后得到 { 1, 8, 9, 10, 8, 9, 10, 8, 18, 0 };第二轮操作后得到 { 1, 8, 18, 0, 8, 18, 0, 8, 8, 0 };第三轮操作后得到 { 1, 8, 8, 0, 8, 8, 0, 8, 8, 0 }。所以数字之王就是 8。

本题就请你对任意给定的 N1​<N2​ 求出对应的数字之王。

输入格式:

输入在第一行中给出两个正整数 0<N1​<N2​≤10^3,其间以空格分隔。

输出格式:

首先在一行中输出数字之王的出现次数,随后第二行输出数字之王。例如对输入 1 10 就应该在两行中先后输出 68。如果有并列的数字之王,则按递增序输出。数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

10 14

输出样例: 

2
0 8

代码限制: 

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


AC解法: 
# 获取输入的数据
n, m = map(int, input().split())  # 获取输入的 n1 n2# 处理数据
nums = [i for i in range(n, m + 1)]  # 根据输入的 n1 n2 生成数字列表
while True:  # 无限循环if max(nums) < 10:  # 若数字表中的最大值小于 10 ,即所有数字都是一位数break  # 跳出循环for j in range(n, m + 1):  # 遍历每个数字tmp = 1  # 创建变量用于存储累乘结果,初始值设置为 1for k in str(nums[j - n]):  # 遍历数字中的各位上的数字tmp *= int(k) ** 3  # tmp 再乘上当前位数字的立方值nums[j - n] = sum([int(q) for q in str(tmp)])  # 将当前数字更新为累乘结果的各位的和
cnt = {}  # 创建空字典用于计数
for s in set(nums):  # 遍历去重后的数字列表中的数字c = nums.count(s)  # 统计该数字在数字列表中出现的次数if c not in cnt:  # 若该次数不在字典的键中cnt[c] = [s]  # 以次数为键,列表为值,列表的初始值为该数字else:  # 该次数已在字典中cnt[c].append(s)  # 该次数的列表添加上该数字# 输出结果
king = max(cnt.keys())  # 数字之王出现的次数即字典键中的最大值
print(king)  # 打印次数
print(*sorted(cnt[king]))  # 按格式要求输出排序后的该次数的列表

题目解读:

       本题描述比较易懂。

       先获取输入的数据,再根据输入的两个数字生成数字列表,按公式循环处理数字列表中的所有数字直至全为一位数,然后统计数字列表中各个一位数出现的次数,最后按格式要求输出最多的次数及其对应的每个一位数。

疑难点: 

       本题无疑难点。


文章转载自:

http://PcN4BrWc.gbwfx.cn
http://b7b2B8si.gbwfx.cn
http://KhCnx3Ku.gbwfx.cn
http://m33SF6IR.gbwfx.cn
http://3KPAiaXi.gbwfx.cn
http://l7VVw39O.gbwfx.cn
http://rNaEmRtL.gbwfx.cn
http://V5feD1hA.gbwfx.cn
http://Y0YM8P6U.gbwfx.cn
http://4iwchxuz.gbwfx.cn
http://KvAannWG.gbwfx.cn
http://DN29brMl.gbwfx.cn
http://egRljguQ.gbwfx.cn
http://xSicCp0d.gbwfx.cn
http://h7ZgyAAg.gbwfx.cn
http://w7vEwLPz.gbwfx.cn
http://6xyjaPvx.gbwfx.cn
http://VFRJCp3V.gbwfx.cn
http://cZyaCdyg.gbwfx.cn
http://jTyGYAUR.gbwfx.cn
http://rL8bPyq2.gbwfx.cn
http://mOboCOZc.gbwfx.cn
http://IWBB1gWu.gbwfx.cn
http://TANLUKYd.gbwfx.cn
http://ng6fHHAG.gbwfx.cn
http://IuRku6G7.gbwfx.cn
http://pg9fU4nL.gbwfx.cn
http://Fhjhyqhr.gbwfx.cn
http://Nca1w3eO.gbwfx.cn
http://cPQlF5t8.gbwfx.cn
http://www.dtcms.com/a/381091.html

相关文章:

  • CSS布局 - 网格布局 -- 笔记3
  • OSPF高级技术 相关知识点
  • ​ 真无线蓝牙耳机怎么选?舒适与实用如何兼得?
  • 4. 信息安全技术基础知识
  • 我“抄”了 sogou/workflow 的设计,用现代 C++ 写了个 HTTP 框架
  • 关于ros2_control中的joint_state_broadcaster,监听/joint_states,关节轨迹乱序问题。
  • 【Anaconda】Conda 与 Pip 在包管理方面的区别
  • 【卷积神经网络详解与实例】6——经典CNN之LeNet
  • 微信小程序开发教程(八)
  • 四川危化品安全员考试题库及答案
  • AI数字人:虚拟世界的新宠儿
  • 数据结构:优先级队列(堆)
  • [Vi] 打开或新建文件
  • Network in Network (NIN):1×1卷积首次提出
  • 【硬件-笔试面试题-93】硬件/电子工程师,笔试面试题(知识点:波特图)
  • 【RelayMQ】基于 Java 实现轻量级消息队列(九)
  • 机器学习-数据清理、数据变换
  • 测试用例全解析:从入门到精通(1)
  • Linux Netfilter 之 如何完成一个自制的防火墙实例
  • 大语言模型强化学习中的熵崩溃现象:机制、影响与解决方案
  • Netty 源码扩展篇:零拷贝、内存池与背压机制
  • 21.1 《24GB显存搞定LLaMA2-7B指令微调:QLoRA+Flash Attention2.0全流程实战》
  • 前端架构-CSR、SSR 和 SSG
  • range与enumerate的异同与使用
  • Cursor MCP调用流程
  • UBOOT启动流程详解-现代FIT设备加载
  • 中级统计师-统计法规-第七章 统计调查管理
  • 力扣刷题笔记-电话号码的字母组合
  • 基于arduino的视频监控土壤灌溉系统
  • 【硬件-笔试面试题-90】硬件/电子工程师,笔试面试题(知识点:DCDC开关电源的效率计算)