Schreiben Sie ein Programm oder eine Funktion, die eine nicht leere Liste positiver Ganzzahlen enthält. Sie können davon ausgehen, dass die Eingabe in einem angemessenen, praktischen Format wie "1 2 3 4"
oder erfolgt [1, 2, 3, 4]
.
Die Zahlen in der Eingabeliste stellen die Segmente eines vollständigen Kreisdiagramms dar, wobei jede Segmentgröße proportional zu ihrer entsprechenden Nummer ist und alle Segmente in der angegebenen Reihenfolge um das Diagramm angeordnet sind.
Zum Beispiel ist der Kuchen für 1 2 3 4
:
Die Frage, die Ihr Code beantworten muss, lautet: Ist das Kreisdiagramm jemals halbiert ? Das heißt, gibt es jemals eine vollkommen gerade Linie von einer Seite des Kreises zur anderen, die ihn symmetrisch in zwei Teile teilt?
Sie müssen einen Wahrheitswert ausgeben , wenn es mindestens eine Halbierende gibt, und einen falschen Wert, wenn es keine gibt .
In dem 1 2 3 4
Beispiel liegt eine Halbierung zwischen 4 1
und 2 3
daher wäre die Ausgabe wahr.
Für die Eingabe 1 2 3 4 5
gibt es jedoch keine Halbierungslinie, sodass die Ausgabe falsch wäre:
Zusätzliche Beispiele
Wenn Sie die Zahlen anders anordnen, werden möglicherweise Bisektoren entfernt.
zB 2 1 3 4
→ falsch:
Befindet sich nur eine Zahl in der Eingabeliste, wird der Kuchen nicht halbiert.
zB 10
→ falsch:
Es können mehrere Bisektoren vorhanden sein. Solange es mehr als Null gibt, ist die Ausgabe wahr.
zB 6 6 12 12 12 11 1 12
→ wahrheit: (hier sind 3 bisektoren)
Teilungen können auch dann existieren, wenn sie visuell nicht offensichtlich sind.
zB 1000000 1000001
→ falsch:
zB 1000000 1000001 1
→ wahrheit:
(Danke an nces.ed.gov für die Erstellung der Tortendiagramme.)
Testfälle
Truthy
1 2 3 4
6 6 12 12 12 11 1 12
1000000 1000001 1
1 2 3
1 1
42 42
1 17 9 13 2 7 3
3 1 2
10 20 10
Falsy
1 2 3 4 5
2 1 3 4
10
1000000 1000001
1
1 2
3 1 1
1 2 1 2 1 2
10 20 10 1
Wertung
Der kürzeste Code in Bytes gewinnt. Tiebreaker ist frühere Antwort.