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

📅  最后修改于: 2022-05-13 01:56:56.462000             🧑  作者: Mango

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

我们有 N 个硬币需要以三角形的形式排列,即第一排有 1 个硬币,第二排有 2 个硬币,以此类推,我们需要说出使用这 N 个硬币可以达到的最大高度。

例子:

Input : N = 7
Output : 3
Maximum height will be 3, putting 1, 2 and
then 3 coins. It is not possible to use 1 
coin left.

Input : N = 12
Output : 4
Maximum height will be 4, putting 1, 2, 3 and 
4 coins, it is not possible to make height as 5, 
because that will require 15 coins.
# Python3 program to find
# maximum height of arranged
# coin triangle
  
# Returns the square root of n.
# Note that the function 
def squareRoot(n):
   
    # We are using n itself as
        # initial approximation
    # This can definitely be improved 
    x = n 
    y = 1 
  
    e = 0.000001  # e decides the accuracy level 
    while (x - y > e):
        x = (x + y) / 2
        y = n/x
          
    return x 
   
  
# Method to find maximum height
# of arrangement of coins
def findMaximumHeight(N):
   
    # calculating portion inside the square root
    n = 1 + 8*N 
    maxH = (-1 + squareRoot(n)) / 2
    return int(maxH) 
   
  
# Driver code to test above method
N = 12 
print(findMaximumHeight(N))
  
# This code is contributed by
# Smitha Dinesh Semwal

输出:

4

更多详情请参考完整文章硬币排列成三角形时的最大高度!