Einfach 0 gelöst 0% Erfolgsquote

Händedrucke zählen

Zähle die Händedrucke, wenn jedes Paar von Personen sich einmal die Hand gibt.

Das lernst du

  • Paare mit n × (n - 1) / 2 zählen
  • Begründen, warum jedes Paar einmal gezählt wird
  • Eine Schleife durch eine Formel ersetzen

Problem

Jede Person gibt jeder anderen Person genau einmal die Hand. Ein Händedruck zwischen A und B ist dasselbe Ereignis wie zwischen B und A. Niemand gibt sich selbst die Hand.

Implementiere handshake_count(people).

Eingabe

people: Die Anzahl der Personen.

Ausgabe

Gib die Gesamtzahl der unterschiedlichen Händedrucke zurück.

Einschränkungen

0 ≤ people ≤ 1.000.000.000. Die Antwort passt in einen vorzeichenbehafteten 64-Bit-Integer.

Beispiele

Beispiel 1
Eingabe:
people = 4

Erwartete Ausgabe:
expected = 6
Eingabe:
long long people = 4;

Erwartete Ausgabe:
long long expected = 6;
Eingabe:
long people = 4;

Erwartete Ausgabe:
long expected = 6;

Erläuterung

Die Paare sind AB, AC, AD, BC, BD und CD: sechs Händedrucke.

Beispiel 2
Eingabe:
people = 1

Erwartete Ausgabe:
expected = 0
Eingabe:
long long people = 1;

Erwartete Ausgabe:
long long expected = 0;
Eingabe:
long people = 1;

Erwartete Ausgabe:
long expected = 0;

Erläuterung

Eine Person hat niemanden, den sie begrüßen könnte.

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Jeder Handschlag ist nur ein ungeordnetes Paar aus zwei verschiedenen Personen.

Hinweis 2

Zähle, wie viele Paare sich aus allen Personen bilden lassen, ohne doppelt zu zählen.

Hinweis 3

Achte darauf: Bei null oder einer Person gibt es gar keine Handshakes.

Erwartete Komplexität

Zeit O(1), zusätzlicher Speicher O(1)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.