gpt4 book ai didi

python - 给定一个以米为单位的面积,重复移除最大的正方形

转载 作者:行者123 更新时间:2023-12-05 04:30:39 25 4
gpt4 key购买 nike

所以我正在学习python,想解决一个以面积为整数输入并计算用它可以做出多少平方米的问题。

示例

比如输入12米的面积(输入12),可以做一个3x3平方米(面积9米)。这将为您留下 3 米的面积,因此您可以将它们变成三个 1x1 平方米。

示例输入和输出。

input: function(12)
output: 9,1,1,1

input: function(22)
output: 16, 4, 1, 1

input: function(15324)
output: 15129,169,25,1

我尝试了以下方法,但我不能完全做到。

def area(num):
return num * num

number = float(input(" Please Enter any numeric Value : "))

area= square(number)

print(area)

我只尝试返回给定数字的平方数,但我该如何根据问题改进它?

最佳答案

我认为您已接近解决方案。我实现了一个简单但有效的解决方案。


import math

def square(n):
lis = []

rest = n
while n > 0:
rest = math.floor(math.sqrt(n))**2
lis.append(rest)
n-= rest
return(lis)

可以看到,这一行math.floor(math.sqrt(n))^2就是计算小于n的最接近的完美平方。然后,我将结果保存在一个列表中,并用减去 n 减去其余部分来更新 n 值。使用 while 循环迭代此过程,我获得了包含您指定结果的最终列表。

square(12)
>>> [9, 1, 1, 1]
square(22)
>>> [16, 4, 1, 1]
square(15324)
>>> [15129, 169, 25, 1]

编辑
提示命令执行功能。

n = float(input(" Please Enter any numeric Value : "))
square(n)

总而言之,如果你想要一个带有提示符的all-in函数。


import math

def square_prompt():
n = 1
while n>0:
n = float(input(" Please Enter any numeric Value : "))
if n:
print(square(n))

square_prompt()

注意。如果您插入一个小于 0 的数字,您将停止循环(这意味着用户没有任何其他数字可以向程序询问)。

关于python - 给定一个以米为单位的面积,重复移除最大的正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71991228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com