Problema
Ogni persona si stringe la mano una volta con ogni altra persona. Una stretta di mano tra A e B è lo stesso evento che tra B e A. Nessuno si stringe la mano da solo.
Implementa handshake_count(people).
Input
people: Il numero di persone.
Output
Restituisci il numero totale di strette di mano distinte.
Vincoli
0 ≤ people ≤ 1.000.000.000. La risposta rientra in un intero con segno a 64 bit.
Esempi
Input:
people = 4
Output atteso:
expected = 6
Input:
long long people = 4;
Output atteso:
long long expected = 6;
Input:
long people = 4;
Output atteso:
long expected = 6;
Spiegazione
Le coppie sono AB, AC, AD, BC, BD e CD: sei strette di mano.
Input:
people = 1
Output atteso:
expected = 0
Input:
long long people = 1;
Output atteso:
long long expected = 0;
Input:
long people = 1;
Output atteso:
long expected = 0;
Spiegazione
Una persona non ha nessun altro da salutare.
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Ogni stretta di mano è solo una coppia non ordinata di persone diverse.
Suggerimento 2
Conta quante coppie si possono formare tra tutte le persone, senza doppio conteggio.
Suggerimento 3
Attenzione: con zero o una persona non ci sono strette di mano.
Complessità attesa
tempo O(1), spazio aggiuntivo O(1)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.