考虑一个正整数n。如果我们把n的数字和k的数字连接起来,我们得到一个完美的平方,那么最小的数k是多少?
例如,对于n=1,最小的k是6,因为16是完美的正方形。
对于n=4,k必须为9,因为49是一个完美的正方形。
对于n=35,k为344,因为35344=1882是从数字35开始的最小完全正方形。
定义smallestSquare函数,该函数接受正整数n,并返回最小整数k,其n,k的数字连接产生一个完美的正方形。
现在我所知道的就是这个,它检查给定的数是否是一个完美的平方。我想用递归来解决这个问题,但我甚至不知道从哪里开始。
from math import sqrt
def isSquare(n):
return n == int(sqrt(n) + 0.5) ** 2
def smallestSquare(n):
2条答案
按热度按时间eufgjt7s1#
不需要递归:
wtlkbnrh2#
如果给定某个数字'n',您要寻找以'n'开头的最小完美suqare,下面是一个可行的方法:
测试:
如果你要找的是“k的最小值”,当它与n连接时,会产生一个完美的平方--上面的方法不能保证给予你你想要的。如果这是你所需要的,请说明。