Ecrivez un programme ou une fonction qui prend une liste non vide d’entiers positifs. Vous pouvez supposer qu'il s'agit d'un format pratique convenable, tel que "1 2 3 4"
ou [1, 2, 3, 4]
.
Les nombres dans la liste d'entrée représentent les tranches d'un graphique à secteurs complet , chaque taille de tranche étant proportionnelle à son nombre correspondant et toutes les tranches étant disposées autour du graphique dans l'ordre indiqué.
Par exemple, la tarte pour 1 2 3 4
est:
La question à laquelle votre code doit répondre est la suivante: le diagramme à secteurs est-il déjà divisé en deux ? En d’autres termes, existe-t-il une ligne parfaitement droite d’un côté à l’autre du cercle, qui le divise symétriquement en deux?
Vous devez générer une valeur de vérité s'il existe au moins une bissectrice et une valeur de fausseté s'il n'en existe aucune .
Dans l' 1 2 3 4
exemple, il y a une bissection entre 4 1
et 2 3
le résultat serait donc véridique.
Mais pour l'entrée, 1 2 3 4 5
il n'y a pas de bissectrice, donc le résultat serait faux:
Exemples supplémentaires
Arranger les nombres différemment peut enlever les bissectrices.
par exemple 2 1 3 4
→ fausseté:
Si un seul numéro figure dans la liste de saisie, le graphique n'est pas divisé en deux.
par exemple 10
→ fausseté:
Il peut y avoir plusieurs bissectrices. Tant qu'il y a plus que zéro, le résultat est la vérité.
par exemple 6 6 12 12 12 11 1 12
→ vérité: (il y a 3 bissectrices ici)
Des bisections peuvent exister même si elles ne sont pas évidentes visuellement.
par exemple 1000000 1000001
→ fausseté:
par exemple 1000000 1000001 1
→ vérité:
(Merci à nces.ed.gov pour la génération des camemberts.)
Cas de test
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
Notation
Le code le plus court en octets gagne. Tiebreaker est une réponse plus tôt.