Рубрики

Треугольные числа

Число называется треугольным числом, если мы можем представить его в виде треугольной сетки точек, такой, что точки образуют равносторонний треугольник, и каждая строка содержит столько же точек, сколько и номер строки, т. Е. Первая строка имеет одну точку, вторая ряд имеет две точки, третий ряд имеет три точки и так далее. Начальные треугольные числа: 1, 3 (1 + 2), 6 (1 + 2 + 3), 10 (1 + 2 + 3 + 4).

Как проверить, является ли число треугольным?
Идея основана на том факте, что n-ое треугольное число может быть записано как сумма n натуральных чисел, то есть n * (n + 1) / 2. Причина этого проста: базовая линия треугольной сетки имеет n точек, линия над базой имеет (n-1) точек и так далее.

Способ 1 (простой)
Мы начинаем с 1 и проверяем, равно ли число 1. Если это не так, мы добавляем 2, чтобы сделать его 3, и перепроверяем число. Мы повторяем эту процедуру до тех пор, пока сумма не станет меньше или равна числу, которое нужно проверить на треугольность.

Ниже приведены реализации для проверки, является ли число треугольным числом.

C ++

// C ++ программа для проверки, является ли число треугольным числом
// используя простой подход.
#include <iostream>

using namespace std;

  
// Возвращает true, если 'num' треугольный, иначе false

bool isTriangular(int num)

{

    // Базовый вариант

    if (num < 0)

        return false;

  

    // Треугольное число должно быть суммой первых n

    // натуральные числа

    int sum = 0;

    for (int n=1; sum<=num; n++)

    {

        sum = sum + n;

        if (sum==num)

            return true;

    }

  

    return false;

}

  
// Код драйвера

int main()

{

    int n = 55;

    if (isTriangular(n))

        cout << "The number is a triangular number";

    else

        cout << "The number is NOT a triangular number";

  

    return 0;

}

Джава

// Java программа для проверки
// число - это треугольное число
// используя простой подход

class GFG

{

      

    // Возвращает true, если 'num'

    // треугольный, иначе ложь

    static boolean isTriangular(int num)

    {

        // Базовый вариант

        if (num < 0)

            return false;

      

        // Треугольное число должно быть

        // сумма первых n натуральных чисел

        int sum = 0;

          

        for (int n = 1; sum <= num; n++)

        {

            sum = sum + n;

            if (sum == num)

                return true;

        }

      

        return false;

    }

      

    // Код драйвера

    public static void main (String[] args)

    {

        int n = 55;

        if (isTriangular(n))

            System.out.print("The number "

                + "is a triangular number");

        else

            System.out.print("The number"

             + " is NOT a triangular number");

    }

}

  
// Этот код добавлен
// Анант Агарвал.

python3

# Python3 программа для проверки, является ли число
# треугольное число, используя простой подход.

  
# Возвращает True, если 'num' треугольный, иначе False

def isTriangular(num):

  

    # Базовый вариант

    if (num < 0):

        return False

  

    # Треугольное число должно быть

    # сумма первых n натуральных чисел

    sum, n = 0, 1

  

    while(sum <= num): 

      

        sum = sum + n

        if (sum == num):

            return True

        n += 1

  

    return False

  
# Код драйвера

n = 55

if (isTriangular(n)):

    print("The number is a triangular number")

else:

    print("The number is NOT a triangular number")

  
# Этот код предоставлен Смитой Динеш Семвал.

C #

// C # программа для проверки, является ли число
// треугольное число, используя простой подход

using System;

  

class GFG {

      

    // Возвращает true, если 'num'

    // треугольный, иначе ложь

    static bool isTriangular(int num)

    {

        // Базовый вариант

        if (num < 0)

            return false;

      

        // Треугольное число должно быть

        // сумма первых n натуральных чисел

        int sum = 0;

          

        for (int n = 1; sum <= num; n++)

        {

            sum = sum + n;

            if (sum == num)

                return true;

        }

      

        return false;

    }

      

    // Код драйвера

    public static void Main ()

    {

        int n = 55;

          

        if (isTriangular(n))

            Console.WriteLine("The number "

                + "is a triangular number");

        else

            Console.WriteLine("The number"

            + " is NOT a triangular number");

    }

}

  
// Этот код предоставлен vt_m.

PHP

<?php
// PHP-программа для проверки, является ли число
// треугольное число, используя простой подход.

  
// Возвращает true, если 'num' треугольный,
// иначе ложь

function isTriangular( $num)

{

      

    // Базовый вариант

    if ($num < 0)

        return false;

  

    // Треугольное число должно быть

    // сумма первых n натуральных чисел

    $sum = 0;

    for ($n = 1; $sum <= $num; $n++)

    {

        $sum = $sum + $n;

        if ($sum == $num)

            return true;

    }

  

    return false;

}

  
// Код драйвера

$n = 55;

if (isTriangular($n))

    echo "The number is a triangular number";

else

    echo "The number is NOT a triangular number";

      
// Этот код предоставлен Rajput-Ji
?>

Выход:

 The number is a triangular number 

Метод 2 (с использованием формулы корня квадратного уравнения)
Мы формируем квадратное уравнение, приравнивая число к формуле суммы первых 'n' натуральных чисел, и если мы получим хотя бы одно значение 'n', которое является натуральным числом, мы говорим, что число является треугольным числом.

Let the input number be 'num'. We consider,

n*(n+1) = num

as,

 n2 + n + (-2 * num) = 0 

Ниже приведена реализация вышеуказанной идеи.

C ++

// C ++ программа для проверки, является ли число треугольным числом
// используя квадратное уравнение.
#include <bits/stdc++.h>

using namespace std;

  
// Возвращает true, если num треугольный

bool isTriangular(int num)

{

    if (num < 0)

        return false;

  

    // Учитывая уравнение n * (n + 1) / 2 = num

    // Уравнение: a (n ^ 2) + bn + c = 0 ";

    int c = (-2 * num);

    int b = 1, a = 1;

    int d = (b * b) - (4 * a * c);

  

    if (d < 0)

        return false;

  

    // Найти корни уравнения

    float root1 = ( -b + sqrt(d)) / (2 * a);

    float root2 = ( -b - sqrt(d)) / (2 * a);

  

    // проверка естественности root1

    if (root1 > 0 && floor(root1) == root1)

        return true;

  

    // проверка естественности root2

    if (root2 > 0 && floor(root2) == root2)

        return true;

  

    return false;

}

  
// Код драйвера

int main()

{

    int num = 55;

    if (isTriangular(num))

        cout << "The number is a triangular number";

    else

        cout << "The number is NOT a triangular number";

  

    return 0;

}

Джава

// Java-программа для проверки, является ли число
// треугольное число с использованием квадратного уравнения.

import java.io.*;

  

class GFG {

  

    // Возвращает true, если num треугольный

    static boolean isTriangular(int num)

    {

        if (num < 0)

            return false;

      

        // Рассматривая уравнение

        // n * (n + 1) / 2 = num

        // Уравнение:

        // a (n ^ 2) + bn + c = 0 ";

        int c = (-2 * num);

        int b = 1, a = 1;

        int d = (b * b) - (4 * a * c);

      

        if (d < 0)

            return false;

      

        // Найти корни уравнения

        float root1 = ( -b + 

           (float)Math.sqrt(d)) / (2 * a);

             

        float root2 = ( -b - 

           (float)Math.sqrt(d)) / (2 * a);

      

        // проверка естественности root1

        if (root1 > 0 && Math.floor(root1)

                                  == root1)

            return true;

      

        // проверка естественности root2

        if (root2 > 0 && Math.floor(root2)

                                  == root2)

            return true;

      

        return false;

    }

      

    // Код драйвера

    public static void main (String[] args) {

        int num = 55;

        if (isTriangular(num))

            System.out.println("The number is"

                    + " a triangular number");

        else

            System.out.println ("The number "

              + "is NOT a triangular number");

    }

}

  
// Этот код предоставлен vt_m.

python3

# Python3 программа для проверки, является ли число
# треугольное число с использованием квадратного уравнения.

import math

  
# Возвращает True, если num треугольный

def isTriangular(num):

  

    if (num < 0):

        return False

  

    # Учитывая уравнение n * (n + 1) / 2 = num

    # Уравнение: a (n ^ 2) + bn + c = 0

    c = (-2 * num)

    b, a = 1, 1

    d = (b * b) - (4 * a * c)

  

    if (d < 0):

        return False

  

    # Найти корни уравнения

    root1 = ( -b + math.sqrt(d)) / (2 * a)

    root2 = ( -b - math.sqrt(d)) / (2 * a)

  

    # проверка, является ли root1 естественным

    if (root1 > 0 and math.floor(root1) == root1):

        return True

  

    # проверка естественности root2

    if (root2 > 0 and math.floor(root2) == root2):

        return True

  

    return False

  

  
# Код драйвера

n = 55

if (isTriangular(n)):

    print("The number is a triangular number")

else:

    print("The number is NOT a triangular number")

  
# Этот код предоставлен Смитой Динеш Семвал

C #

// C # программа для проверки, является ли число треугольным
// число с использованием квадратного уравнения.

using System;

  

class GFG {

      

    // Возвращает true, если num треугольный

    static bool isTriangular(int num)

    {

        if (num < 0)

            return false;

      

        // Учитывая уравнение n * (n + 1) / 2 = num

        // Уравнение: a (n ^ 2) + bn + c = 0 ";

        int c = (-2 * num);

        int b = 1, a = 1;

        int d = (b * b) - (4 * a * c);

      

        if (d < 0)

            return false;

      

        // Найти корни уравнения

        float root1 = ( -b + (float)Math.Sqrt(d))

                                        / (2 * a);

                                          

        float root2 = ( -b - (float)Math.Sqrt(d))  

                                        / (2 * a);

      

        // проверка естественности root1

        if (root1 > 0 && Math.Floor(root1) == root1)

            return true;

      

        // проверка естественности root2

        if (root2 > 0 && Math.Floor(root2) == root2)

            return true;

      

        return false;

    }

      

    // Код драйвера

    public static void Main () {

          

        int num = 55;

        if (isTriangular(num))

            Console.WriteLine("The number is a " 

                            + "triangular number");

        else

            Console.WriteLine ("The number is NOT "

                          + "a triangular number");

    }

}

  
// Этот код предоставлен vt_m.

PHP

<?php
// PHP-программа для проверки, является ли число
// треугольное число с использованием квадратного уравнения.

  
// Возвращает true, если num треугольный

function isTriangular($num)

{

    if ($num < 0)

        return false;

  

    // Рассматривая уравнение

    // n * (n + 1) / 2 = num

    // Уравнение:

    // a (n ^ 2) + bn + c = 0 ";

    $c = (-2 * $num);

    $b = 1; $a = 1;

    $d = ($b * $b) - (4 * $a * $c);

  

    if ($d < 0)

        return false;

  

    // Найти корни уравнения

    $root1 = (-$b + (float)sqrt($d)) / (2 * $a);

          

    $root2 = (-$b - (float)sqrt($d)) / (2 * $a);

  

    // проверка естественности root1

    if ($root1 > 0 && floor($root1) == $root1)

        return true;

  

    // проверка естественности root2

    if ($root2 > 0 && floor($root2) == $root2)

        return true;

  

    return false;

}

  
// Код драйвера

$num = 55;

if (isTriangular($num))

    echo("The number is"

         " a triangular number");

else

    echo ("The number "

          "is NOT a triangular number");

  
// Этот код добавлен
// по Code_Mech.
?>


Выход:

 The number is a triangular number 

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Треугольные числа

0.00 (0%) 0 votes