Рубрики

Найти максимальное количество рукопожатий

В комнате N человек. Найдите максимально возможное количество рукопожатий. Учитывая тот факт, что любые два человека пожимают руку ровно один раз.

Примеры :

Input : N = 2
Output : 1.
There are only 2 persons in the room. 1 handshake take place.

Input : N = 10
Output : 45.

Чтобы максимизировать количество рукопожатий, каждый человек должен пожать руку каждому другому человеку в комнате. Для первого человека будут рукопожатия N-1. Для второго человека был бы доступен N-1 человек, но он уже пожал руку первому. Так что будут рукопожатия N-2 и так далее.
Итак, общее количество рукопожатий = N-1 + N-2 +…. + 1 + 0, что эквивалентно ((N-1) * N) / 2
(используя формулу суммы первого N натурального числа).

Ниже приведена реализация этой проблемы.

C ++

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

using namespace std;

  
// Расчет максимального количества рукопожатий
// используя производную формулу.

int maxHandshake(int n)

{

  return (n * (n - 1))/ 2;

}

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

int main()

{

  int n = 10;

  cout << maxHandshake(n) <<endl;

  

  return 0;

Джава

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

  

class GFG 

{

    // Расчет максимального количества

    // рукопожатие с использованием производной формулы.

    static int maxHandshake(int n)

    {

        return (n * (n - 1)) / 2;

    }

      

      

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

    public static void main (String[] args)

    {

        int n = 10;

        System.out.println( maxHandshake(n));

    }

}

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

python3

# Python3 программа для поиска максимума
# количество рукопожатий.

  
# Расчет максимального количества
# рукопожатия с использованием производной формулы.

def maxHandshake(n):

  

    return int((n * (n - 1)) / 2)

  
Код водителя

n = 10

print(maxHandshake(n))

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

C #

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

using System;

  

class GFG 

{

    // Расчет максимального количества

    // рукопожатие с использованием производной формулы.

    static int maxHandshake(int n)

    {

        return (n * (n - 1)) / 2;

    }

      

      

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

    public static void Main ()

    {

        int n = 10;

        Console.Write( maxHandshake(n));

    }

}

  
// Этот код предоставлен нитин митталь.

PHP

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

  
// Расчет максимума
// количество рукопожатий
// используя производную формулу.

function maxHandshake($n)

{

    return ($n * ($n - 1))/ 2;

}

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

$n = 10;

echo maxHandshake($n);

  
// Этот код предоставлен anuj_67.
?>


Выход:

45

Сложность времени: O (1)

Эта статья предоставлена Anuj Chauhan (anuj0503) . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

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

Найти максимальное количество рукопожатий

0.00 (0%) 0 votes