Scrivi un programma o una funzione che contiene un elenco non vuoto di numeri interi positivi. Si può presumere che sia inserito in un formato conveniente ragionevole come "1 2 3 4"
o [1, 2, 3, 4]
.
I numeri nell'elenco di input rappresentano le sezioni di un grafico a torta completo in cui ogni dimensione della sezione è proporzionale al numero corrispondente e tutte le sezioni sono disposte attorno al grafico nell'ordine indicato.
Ad esempio, la torta per 1 2 3 4
è:
La domanda alla quale il tuo codice deve rispondere è: il grafico a torta è mai diviso in due ? Cioè, c'è mai una linea perfettamente dritta da un lato del cerchio all'altro, dividendola simmetricamente in due?
È necessario generare un valore di verità se esiste almeno una bisettrice e generare un valore di falsa se non ce ne sono .
Nel 1 2 3 4
esempio c'è una bisezione tra 4 1
e 2 3
così l'uscita sarebbe truthy.
Ma per l'input 1 2 3 4 5
non c'è bisettrice quindi l'output sarebbe falso:
Esempi aggiuntivi
Disporre i numeri in modo diverso può rimuovere le bisettrici.
ad es. 2 1 3 4
→ falsy:
Se nell'elenco di input è presente un solo numero, la torta non viene tagliata in due.
ad es. 10
→ falsy:
Possono esserci più bisettrici. Finché ce ne sono più di zero, l'output è veritiero.
es. 6 6 12 12 12 11 1 12
→ verità: (ci sono 3 bisettrici qui)
Le bisecie possono esistere anche se non sono visivamente ovvie.
ad es. 1000000 1000001
→ falsy:
ad es. 1000000 1000001 1
→ verità:
(Grazie a nces.ed.gov per la generazione dei grafici a torta.)
Casi 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
punteggio
Vince il codice più breve in byte. Tiebreaker è la risposta precedente.