Divide el triángulo isósceles dado de altura H en N partes iguales

Dado un número entero N y un triángulo isósceles de altura H , la tarea es encontrar (N – 1) puntos en el triángulo tales que la línea que pasa por estos puntos y paralela a la base del triángulo, divida el área total en N a partes iguales.

Ejemplos:

Entrada: N = 3, H = 2 
Salida: 1.15 1.63 
Explicación: Haga cortes en el punto 1.15 y 1.63 como se muestra a continuación: 
 

Entrada: N = 2, H = 1000 
Salida: 70710.67

Enfoque: El problema se puede resolver observando las siguientes propiedades:

Divide el triángulo de manera que (x i / h) 2 = i / N 
=> x i = h*√(i/n) 
x i = altura del i -ésimo corte desde el vértice superior del triángulo

Siga los pasos a continuación para resolver el problema:

  1. Iterar sobre el rango [1, N – 1] .
  2. En cada i -ésima iteración, imprima el valor de x i usando la fórmula anterior.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ Code for above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to divide the isosceles triangle
// in equal parts by making N-1 cuts
// parallel to the base
void findPoint(int n, int h)
{
   
    // Iterate over the range [1, n - 1]
    for (int i = 1; i < n; i++)
        printf("%.2f ", sqrt(i / (n*1.0)) * h);
}
 
// Driver code
int main()
{
  // Given N
  int n = 3;
 
  // Given H
  int h = 2;
 
  // Function call
  findPoint(n, h);
 
  return 0;
}
 
// This code is contributed by mohit kumar 29

Java

// Java Code for above approach
import java.util.*;
class GFG
{
 
    // Function to divide the isosceles triangle
    // in equal parts by making N-1 cuts
    // parallel to the base
    static void findPoint(int n, int h)
    {
 
        // Iterate over the range [1, n - 1]
        for (int i = 1; i < n; i++)
            System.out.printf("%.2f ",
                    Math.sqrt(i / (n * 1.0)) * h);
    }
 
    // Driver code
    public static void main(String[] args)
    {
       
        // Given N
        int n = 3;
 
        // Given H
        int h = 2;
 
        // Function call
        findPoint(n, h);
    }
}
 
// This code is contributed by shikhasingrajput

Python3

# Python Code for above approach
 
 
# Function to divide the isosceles triangle
# in equal parts by making N-1 cuts
# parallel to the base
def findPoint(n, h):
 
 
    # Iterate over the range [1, n - 1]
    for i in range(1, n):
        print("{0:.2f}".format(((i / n) ** 0.5) * h), end =' ')
 
 
# Driver Code
if __name__ == '__main__':
 
    # Given N
    n = 3
 
    # Given H
    h = 2
 
    # Function call
    findPoint(n, h)

C#

// C# Code for above approach
using System;
class GFG
{
 
  // Function to divide the isosceles triangle
  // in equal parts by making N-1 cuts
  // parallel to the base
  static void findPoint(int n, int h)
  {
 
    // Iterate over the range [1, n - 1]
    for (int i = 1; i < n; i++)
      Console.Write("{0:F2} ",
                    Math.Sqrt(i / (n * 1.0)) * h);
  }
 
  // Driver code
  public static void Main(String[] args)
  {
 
    // Given N
    int n = 3;
 
    // Given H
    int h = 2;
 
    // Function call
    findPoint(n, h);
  }
}
 
// This code is contributed by shikhasingrajput

Javascript

<script>
// Javascript program for the above approach
 
    // Function to divide the isosceles triangle
    // in equal parts by making N-1 cuts
    // parallel to the base
    function findPolet(n, h)
    {
  
        // Iterate over the range [1, n - 1]
        for (let i = 1; i < n; i++)
            document.write(
                    Math.sqrt(i / (n * 1.0)) * h + " ");
    }
     
// driver function
 
        // Given N
        let n = 3;
  
        // Given H
        let h = 2;
  
        // Function call
        findPolet(n, h);;
      
     // This code is contributed by souravghosh0416.
</script>   
Producción: 

1.15 1.63

 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por oshi3feb y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *