原题链接:蓝桥杯2014年第五届真题-拼接平方数
解题思路:
根据题意,符合条件的数要满足的条件为
①一个数要满足是平方数
②这个数要能拆分成两部分
③拆分成的两部分也要是平方数
注意:这里0并不是平方数
拿1681举例吧
1681是平方数,接下来要进行拆分:
1和681,681不是平方数
16和81,满足条件。
注意事项:
参考代码:
from math import sqrt def Isqure(x): #判断一个数是否是平方数 if x == 0: return False if sqrt(x) - int(sqrt(x)) == 0: return True return False def f(a,b): for item in range(a,b+1): if item > 9: #是否满足第二个条件 if Isqure(item): #是否满足第一个条件 item = str(item) l = len(item) for i in range(1,l): #进行拆分 if Isqure(int(item[:i])) and Isqure(int(item[i:])): #是否满足第三个条件 print(item) break if __name__ == '__main__': a,b = map(int,input().strip().split()) f(a,b)
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复