Introduzione:
A casa abbiamo un orologio che colpisce la quantità dichiarata ogni ora, ma che suona anche una volta ogni mezz'ora. Quindi, dalle 0:01 alle 12:00 incluse, colpisce in questo ordine:
1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12
Sfida:
Dato un numero intero n
, genera un elenco di intervalli di tempo in cui gli strike totali sono uguali n
. Inoltre, inizia sempre almeno 1 minuto prima di questo intervallo di tempo e termina almeno 1 minuto dopo questo intervallo di tempo (e al massimo 29 minuti).
Ad esempio, se l'input è n=8
, l'output potrebbe essere:
[00:59-03:01, 01:29-03:31, 02:59-04:01, 05:29-06:31, 06:29-07:01, 06:59-07:31, 07:59-08:01]
Per cui questi intervalli di tempo hanno le seguenti somme, tutte uguali 8
:
[1+1+2+1+3, 1+2+1+3+1, 3+1+4, 1+6+1, 1+7, 7+1, 8]
Regole della sfida:
- L'output è flessibile. È possibile generare come oggetti Time (o Date / DateTime), timestamp, stringhe (con o senza zero iniziale), decimali con
.29
/.31
/.59
/.01
(cioè0.29-3.01
anziché00:29-03:01
), ecc. Finché è chiaro è prima e dopo l'intervallo di tempo .
Inoltre, puoi scegliere tu stesso l'importo. In tutti i miei esempi uso 1 minuto, ma puoi anche scegliere 5 minuti, 15 minuti, ecc. Questo significa anche che puoi usare.4
/.6
/.9
/.1
(0.4-3.1
invece di00:24-03:06
) per esempio. L'elenco è anche flessibile. Può essere un elenco / raccolta, matrice, stringa separata da delimitatore, stampa per riga su STDOUT, ecc.
Indicare quale scelta di output è stata effettuata.Nota: non è consentito produrre le somme dei tempi come sopra, questo è menzionato solo come chiarimento. È necessario generare i tempi, anche leggermente prima e dopo. - Gli scioperi si concludono da
12:00
a00:30
. Quindin=14
, se , due dei tempi sono11:29-00:31
e11:59-01:01
. - L'input sarà compreso nell'intervallo
1 <= n <= 90
, dove 90 è la somma totale di tutti i colpi possibili. - I tempi di restituzione possono essere in qualsiasi ordine.
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Le scappatoie predefinite sono vietate.
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi test:
(tutti usando 1 minuto prima / dopo i tempi e gli zero iniziali)
Input: 8
Ouput:
[00:59-03:01, 01:29-03:31, 02:59-04:01, 05:29-06:31, 06:29-07:01, 06:59-07:31, 07:59-08:01]
Input: 14
Output:
[00:29-04:01, 00:59-04:31, 02:59-05:01, 04:29-06:31, 05:59-07:01, 11:29-00:31, 11:59-01:01]
Input: 90
Output:
[00:29-00:01, 00:59-00:31, 01:29-01:01, 01:59-01:31, 02:29-02:01, 02:59-02:31, 03:29-03:01, 03:59-03:31, 04:29-04:01, 04:59-04:31, 05:29-05:01, 05:59-05:31, 06:29-06:01, 06:59-06:31, 07:29-07:01, 07:59-07:31, 08:29-08:01, 08:59-08:31, 09:29-09:01, 09:59-09:31, 10:29-10:01, 10:59-10:31, 11:29-11:01, 11:59-11:31]
Input: 1
Output:
[00:29-00:31, 00:59-01:01, 01:29-01:31, 02:29-02:31, 03:29-03:31, 04:29-04:31, 05:29-05:31, 06:29-06:31, 07:29-07:31, 08:29-08:31, 09:29-09:31, 10:29-10:31, 11:29-11:31]
Input: 2
Output:
[00:29-01:01, 00:59-01:31, 01:59-02:01]
.4
/ .6
/ .9
/ .1
è consentito (essendo 6 minuti come hai dichiarato: :24
/ :36
/ :54
/ :06
).