Je suis très paresseux alors j'essaie de toujours programmer mon micro-ondes avec le moins de pressions de bouton possible . Mon micro-ondes a les boutons suivants:
- Un bouton "minute plus" qui ne peut être enfoncé qu'en premier et qui implique "démarrer". Il peut être pressé plusieurs fois pendant plusieurs minutes, mais il n'ajoutera pas une minute à une heure entrée manuellement. Production
+
- Un ensemble de boutons 0-9. L'entrée de temps est MMSS (c.-à-d. "130" signifie 1 minute 30 secondes). Les secondes peuvent varier de 0 à 99. Ainsi, "130" et "90" sont des entrées équivalentes. Évidemment, chaque minute est de 60 secondes même si la partie des secondes de l'entrée dépasse 59. Sortie
0
..9
- Un bouton "start" qui doit être enfoncé pour démarrer le micro-ondes si l'heure est entrée manuellement. Production
S
Mes emballages alimentaires spécifient l'heure en MM: SS et le programme doit donc accepter cette entrée.
Exemples
- 1:00 est
+
(rappelez-vous que "minute plus" implique le début) - 1:01 est
61S
(les secondes peuvent dépasser 59, mais la "minute plus" ne fonctionne pas avec les chiffres - je pense que c'est un défaut de conception dans mon micro-ondes) - 9:00 est
900S
(plus court que+++++++++
)
code-challenge
optimization
Ben Jackson
la source
la source
400S
ou++++
?++++
gagne. :)888S
plus court que928S
, mais900S
plus court que860S
? je vais avoir besoin d'une géométrie précise de vos boutons et de chacune de leurs positions.Réponses:
APL
APL a une mauvaise réputation car il est illisible, ce qui n'est absolument pas le cas s'il n'est pas joué au golf.
Les règles:
la source
Javascript
la source
Perl
répond aux exigences,
mais ce n'est pas comme cela que j'entrerais les boutons (par exemple "860S" vs "900S")gère exactement 60 secondes comme un cas spécialProduction
la source
rubis
Remarques:
ruby program-my-microwave-oven.rb
et un test unitaire est évalué.ruby program-my-microwave-oven.rb 10:00
et il écrit960S
Quelques remarques sur les règles (et mon interprétation):
10:00
est960S
(9 minutes et 60 secondes -> 10 minutes).10:39
est999S
(9 minutes et 99 secondes -> 10 minutes et 39 secondes).4:00
il préfère++++
(moins de mouvements des doigts)la source