Il mio capo deve sapere quanto tempo ci vuole per sommare due numeri interi. Ma non mi piace lavorare nei fine settimana e penso sia giusto che neanche il mio codice. Il problema è che il capo è un tipo esigente e pensa che dovrei inserirmi nel tempo per assicurarsi che il tempo impiegato rimanga lo stesso, e so che controllerà se il codice funziona correttamente.
Puoi scrivermi un breve programma che:
- Accetta due numeri interi e restituisce il risultato corretto dell'aggiunta e il tempo necessario per eseguire l'aggiunta: questa volta dovrebbe essere plausibile e basato sul tempo di esecuzione del codice. Tuttavia, se è necessario eseguire alcune operazioni tra il codice temporizzato che lo rende leggermente più lungo di quanto dovrebbe essere consentito. Tuttavia, non puoi semplicemente emettere un tempo falso.
- Non funziona nei fine settimana nei codici ora locale (non può semplicemente restituire un risultato errato, il codice deve rompersi, errore o altrimenti non riuscire a essere eseguito)
- Non è immediatamente ovvio il motivo per cui non funziona nei fine settimana
So che il primo criterio è un po 'strano, ma volevo assicurarmi che le persone potessero importare librerie di data / ora se necessario, senza sollevare sospetti per i criteri 3. Tuttavia, sono sicuro che ci sono alcune persone intelligenti, quindi -10 caratteri per chiunque sia in grado di farlo, senza utilizzare le funzioni di calendario delle librerie di date standard
Riguardo alle "librerie di data / ora standard"
Esempi di librerie datetime standard includono python datetime
, date
libreria di oggetti javascript java.util.Date
e simili. Le funzioni per calcolare i timedelt per l'esecuzione come il timeit
modulo Pythons non violerebbero questa critica poiché il boss si aspetta che il codice sia cronometrato. In alcuni casi, queste librerie dovranno essere importate per accedere a tutte le funzioni temporali, quindi è consentito chiamare funzioni che restituiscono il tempo dall'inizio dell'intera epoca come numero intero, ma funzioni di calendario che restituiscono oggetti datetime strutturati che possono dare separati ore, giorni, ecc ... non sono ammessi.
modifica: per quanto riguarda la domanda di Dan04, il codice deve soddisfare questi 4 criteri relativi a quando funzionerà o meno. Dovresti anche spiegare in che modo il tuo codice controlla l'ora, poiché il rallentamento del lunedì mattina / venerdì sera dovrebbe offrire l'opportunità di alcuni modi creativi per abbreviare il codice.
- non deve funzionare dalle 00:00:00 di sabato mattina alle 23:59:59 di domenica sera.
- deve sempre funzionare dalle 06:00:00 di lunedì mattina alle 19:59:59 di venerdì sera
- può funzionare o meno dalle 00:00:00 di lunedì mattina alle 5:59:59 di lunedì mattina
- può funzionare o meno dalle 20:00:00 di venerdì sera alle 23:59:59 di venerdì sera
edit2: immediatamente evidente deve soddisfare i seguenti 3 criteri:
- Non deve chiamare una funzione che ha chiamato
DayOfWeek
(o simile), senza usarla per calcolare il tempo della funzione. - Non devono usare sabato o domenica o le loro abbreviazioni in inglese.
- Non devono usare Sat o Sun (o nei loro casi di lettere alternative) senza una variabile con nome identico non utilizzata per determinare il giorno della settimana o per determinare se il codice deve essere eseguito.