蓝桥杯 特殊回文数 python

shenhaibb_ 2021-02-23 12:42:39
n = int(input())
temp = []
for a in range(1, 10):
for b in range(10):
for c in range(10):
if 2 * (a + b + c) == n:
temp.append(a * 100000 + b * 10000 + c * 1000 + c * 100 + b * 10 + a)
elif 2 * (a + b) + c == n:
temp.append(a * 10000 + b * 1000 + c * 100 + b * 10 + a)
for i in sorted(temp):
print(i)


这个代码为啥只有80分 问题出来哪呢
...全文
322 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cclxpp123 2021-02-23
  • 打赏
  • 举报
回复
用循环是谁都能想到的, 复杂度太高. 我的想法是, 既然是对称的, 用n=25来说明, 那么最向中间集中的情况是(0,8,9,8,0), 然后逐渐肖平山头, 先是中间的9"向外流":
(0,8,9,8,0)
(0,9,7,9,0)
(1,9,5,9,1)
(2,9,3,9,2)
(3,9,1,9,3)
然后是两个8向外流:
(0,8,9,8,0)
(1,7,9,7,1)
(2,6,9,6,2)
...
最终会把山变成盆地(9,3,1,3,9). 6位的道理类似. 没写代码, 不知道是否可行.
chuifengde 2021-02-23
  • 打赏
  • 举报
回复
除了一个正整数没有达到要求,其它的都没什么问题,是不是要加个abs
shenhaibb_ 2021-02-23
  • 打赏
  • 举报
回复
引用 1 楼 chuifengde 的回复:
题目什么要求
大佬 我已经把题目要求贴在下面了
shenhaibb_ 2021-02-23
  • 打赏
  • 举报
回复
chuifengde 2021-02-23
  • 打赏
  • 举报
回复
题目什么要求

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧