硬币排列成三角形时的最大高度的 Python 程序

pythonserver side programmingprogramming更新于 2024/1/22 22:50:00

在本文中,我们将了解下面给出的问题陈述的解决方案。

问题陈述 − 给定 N 个硬币,我们需要将它们排列成三角形,即第一行有 1 个硬币,第二行有 2 个硬币,依此类推,我们需要显示借助 N 个硬币可以达到的最大高度。

现在让我们观察下面实现中的解决方案 −

示例

# squareroot
def squareRoot(n):
   # initial approximation
   x = n
   y = 1
   e = 0.000001 # 允许错误
   while (x - y > e):
      x = (x + y) / 2
      y = n/x
   return x
# 最大高度
def find(N):
   # 计算平方根的部分
   n = 1 + 8*N
   maxH = (-1 + squareRoot(n)) / 2
   return int(maxH)
# main
N = 17
print("最大高度为:",find(N))

输出

最大高度为:5

所有变量均在本地范围内声明,其引用如上图所示。

结论

在本文中,我们了解了如何编写 Python 程序,以计算硬币排列成三角形时的最大高度。


相关文章