Il reste combien de temps?
Récemment, je faisais de la pizza en utilisant une minuterie de 5 minutes sur mon téléphone. Quand quelqu'un est entré et m'a demandé combien de temps il me restait, j'ai d'abord été confus quant à la façon de répondre à la question. Vous voyez, si la minuterie à l'heure actuelle était à 3 h 47, au moment où j'avais lu à haute voix «Trois minutes et quarante-sept secondes», l'heure aurait changé. Par conséquent, je dois trouver une heure que la minuterie atteindrait juste au moment où je termine la lecture.
C'est votre défi: automatiser ce processus. Étant donné une heure dans n'importe quel format approprié (":" délimité ou en tant qu'argument minute et deuxième), affichez l'heure la plus ancienne à partir de cet instant actuel, ce qui prendrait un temps égal à lire comme il faudrait pour que le chronomètre obtienne à. Nous supposons que chaque syllabe prend 1 seconde pour être lue.
Règles supplémentaires
- Vous devez compter «minutes» et «secondes» comme deux syllabes chacune, ainsi qu'un «et» entre elles.
- La pizza ne prendra jamais plus de 59:59 pour cuisiner.
- «11 minutes et 0 seconde» n'est pas 10 syllabes: vous devez simplifier en «11 minutes» (soit 5 syllabes). Il en va de même pour les minutes: «0 minutes et 7 secondes» ne compte également que pour 4 syllabes.
- Votre programme peut donner la sortie dans n'importe quel format: un tableau de
[minutes, seconds]
, ou même comme<minutes> minutes and <seconds> seconds
(texte normal écrit). - Des échappatoires standard s'appliquent.
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Cas de test
Toutes les entrées en tant que (minutes, seconds)
(4, 47) = (4, 38) (Four MiNutes And ThirTy Eight SeConds - 9 syllables/seconds)
(1, 1) = (0, 56) (FifTy-Six SeConds - 5 syllables/seconds)
(59, 57) = (59, 46) (FifTy Nine Minutes And Forty Six SeConds - 11 syllables/seconds)
(0, 10) = null/error/0 (no positive answer)
Référence du nombre de syllabes
Pour référence, voici le nombre de syllabes dans chaque nombre jusqu'à 59.
0,0 (does not need to be counted)
1,1
2,1
3,1
4,1
5,1
6,1
7,2
8,1
9,1
10,1
11,3
12,1
13,2
14,2
15,2
16,2
17,3
18,2
19,2
20,2
21,3
22,3
23,3
24,3
25,3
26,3
27,4
28,3
29,3
30,2
31,3
32,3
33,3
34,3
35,3
36,3
37,4
38,3
39,3
40,2
41,3
42,3
43,3
44,3
45,3
46,3
47,4
48,3
49,3
50,2
51,3
52,3
53,3
54,3
55,3
56,3
57,4
58,3
59,3