如下所示:
# -*- coding: utf-8 -*-
#简述:一个整数,它加上100和加上268后都是一个完全平方数
#提问:请问该数是多少?
from math import sqrt
def f(number):
for x in range(0,number):
m=sqrt(x+100)
n=sqrt(x+268)
if m==int(m) and n==int(n):
print x
if __name__=="__main__":
f(1000)
运
题目
63. 完全平方数
难度:中等
题目分析:找一个和的可能拆分,在不清楚数学解析解的时候,就是一个状态空间搜索的问题。对于搜索问题,有两种策略。一种是广度优先搜索,即BFS;另一种是深度优先搜索,即DFS。这里答案是需要我们找到个数最少的拆分,所以,用广度优先搜索是最合适的策略。使用深度优先搜索,只能是找到所有解后,从中确定最优解。
这道题不要求我们写出拆分方式,只要个数,所以,最合适的是BFS。
错误解法(对照)
from collections import deque
class S