Parfois, quand je m'ennuie vraiment, j'aime prendre la somme d'un tableau d'entiers non négatifs. Je ne prends que la somme des tableaux de longueurs qui sont des puissances de deux. Malheureusement, je fais souvent des erreurs. Heureusement, je garde la trace de mon travail au fur et à mesure de la manière suivante:
J'ajoute des paires de nombres adjacents jusqu'à ce qu'il n'en reste plus qu'un. Par exemple:
6 + 18 + 9 + 6 + 6 + 3 + 8 + 10
= 24 + 15 + 9 + 18
= 39 + 27
= 66
Votre travail consiste à déterminer si j'ai fait une erreur quelque part. Vous pouvez soit faire passer l'entrée à votre fonction ou lire à partir de l'entrée standard. La sortie peut être imprimée ou retournée.
Entrée: Un tableau / liste / etc. d'entiers non négatifs, et éventuellement aussi la longueur de ce tableau si votre langue l'exige. Ce tableau sera tous les nombres lus de gauche à droite puis de haut en bas. Par exemple, le tableau ci-dessus deviendrait:
[[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]]
ou
[6, 18, 9, 6, 6, 3, 8, 10, 24, 15, 9, 18, 39, 27, 66]
si vous préférez.
Sortie: un seul booléen indiquant si une erreur a été commise ou non. Le booléen peut être représenté en utilisant n'importe quel mappage à condition que toutes les entrées où une erreur est commise retournent / impriment un résultat identique et toutes les entrées qui ne contiennent aucune erreur retournent / impriment un résultat identique. Cela va sans dire, mais ces deux sorties ne peuvent pas être identiques.
Quelques exemples de sommations correctes:
6
5+6
=11
3 + 2 + 4 + 5
= 5 + 9
= 14
[0, 1, 2, 3, 1, 5, 6]
[[1, 2, 4, 8], [3, 12], [15]]
Quelques exemples de sommation incorrecte:
5+4
=8
4 + 4 + 4 + 4
= 9 + 7
= 16
[[1, 2, 3, 4], [7, 3], [10]]
[3, 4, 5, 6, 7, 8, 9]
Gardez à l'esprit que je peux faire des erreurs tout en obtenant la bonne réponse. Si je fais une erreur, cela n'entraînera jamais un nombre supplémentaire ou un nombre manquant dans le tableau final, seulement un mauvais numéro.
Les failles standard sont interdites. La réponse la plus courte dans chaque langue est gagnante. La réponse la plus ancienne l'emportera en cas d'égalité. Je conserve le droit de décider ce qu'est le "même langage", mais je dirai tout de suite qu'un point ne peut pas être gagné à la fois en Python 2 et en Python 3.
[0,1,2,3,1,5,6]
n'est pas valide car "Input: An array / list / etc. Of positive integers".