Python最近的方形函数

时间:2017-08-18 18:06:53

标签: python

我有这个示例测验问题,但不确定如何使用while循环来处理它。

实现nearest_square函数。该函数采用整数参数限制,并返回小于限制的最大平方数。

平方数是整数乘以其自身的乘积,例如36是平方数,因为它等于6*6

编写此代码的方法不止一种,但我建议您使用while循环!

以下是您可以复制以测试代码的测试用例。随意写下额外的测试!

test1 = nearest_square(40)
print("expected result: 36, actual result: {}".format(test1))

我设法解决了这个问题。谢谢。

def nearest_square(limit):
    limit = limit ** (0.5)
    y = int (limit)
    while y < limit :
         y = y*y
    return y

test1 = nearest_square(40)
print("expected result: 36,actual result:{}".format(test1))

7 个答案:

答案 0 :(得分:1)

尝试使用以下方法返回给定composer require phpoffice/phpword:dev-develop 参数的最近的方格:

limit

答案 1 :(得分:0)

这是我用while循环的方式:

def nearest_square(value):
    i = 2
    while i < value:
        square = i*i
        if square == value:
            return square
        i+=1
        value-=1

print (nearest_square(40))

答案 2 :(得分:-1)

def nearest_square(value):

  i = 1
  result = 1
  while (result < value):

   if (result == value):
      return result
   i+=1
   result = i*i

  return (i-1)*(i-1)

print(nearest_square(82))

答案 3 :(得分:-1)

这是我的代码:

`

def nearest_square(limit):
    while limit > 3:
        i = 2
        while i <= limit//2:
            square = i*i
            if square == limit:
                return square
            else:
                i += 1
        limit -= 1
    return 1

`

答案 4 :(得分:-1)

这就是我所做的。

def nearest_square(limit):
    y = 0
    while y**2 < limit:
        y+=1
    if y**2 == limit:
        return(y)
    return(y-1)

print(nearest_square(40))

答案 5 :(得分:-1)

这是我的实现。

这个是while while循环

def near1(limit):
    i = 1
    square = 1
    while (i*i) < limit:
        square = i*i
        i = i+1
    return square

但最简单的是下面。 简单的数学和模数

import math
def near(limit):
    i = int(math.pow(limit, .5))
    return i*i

答案 6 :(得分:-2)

这就是我所做的。

import math  
def nearest_square(limit):
    a = math.sqrt(limit) 
    while type(a) != type(int()):
        limit -=1
    return limit