Meu chefe precisa saber quanto tempo leva para adicionar dois números inteiros. Mas não gosto de trabalhar nos fins de semana e acho justo que meu código também não. O problema é que o chefe é um cara exigente e acha que eu deveria dedicar mais tempo para garantir que o tempo gasto permaneça o mesmo e sei que ele verificará se o código funciona corretamente.
Você pode me escrever um pequeno programa que:
- Aceita dois números inteiros e retorna o resultado correto da adição e o tempo que leva para realizar a adição - esse tempo deve ser plausível e com base no tempo de execução do código. No entanto, se você precisar esgueirar algumas operações entre o código cronometrado que o faz executar um pouco mais do que deveria, isso é permitido. Você não pode, no entanto, apenas produzir um tempo falso.
- Não funciona nos fins de semana nos códigos de horário local (ele não pode simplesmente retornar um resultado errado, o código precisa ser quebrado, com erro ou, caso contrário, não será executado)
- Não é imediatamente óbvio por que não funciona nos fins de semana
Sei que o primeiro critério é meio estranho, mas queria garantir que as pessoas pudessem importar bibliotecas de data / hora, se necessário, sem levantar suspeitas sobre o critério 3. No entanto, tenho certeza de que existem pessoas inteligentes, portanto, -10 caracteres para qualquer pessoa que possa fazer isso, sem usar funções de calendário de bibliotecas de datas padrão
Em relação às 'bibliotecas de data / hora padrão'
Exemplos de bibliotecas de data e hora padrão incluem pythons datetime
, date
biblioteca de objetos javascript java.util.Date
e similares. As funções para calcular o tempo determinado para execução, como o timeit
módulo pythons , não violariam esses critérios, pois o chefe espera que o código seja cronometrado. Em alguns casos, essas bibliotecas precisarão ser importadas para acessar qualquer função de horário, portanto, é permitido chamar funções que retornam a hora desde o início da época atual como um número inteiro, mas funções de calendário que retornam objetos de data e hora estruturados que podem fornecer dados separados. horas, dias, etc ... não são permitidos.
editar: Em relação à pergunta de Dan04, o código deve atender a esses 4 critérios sobre quando ele funcionará ou não. Você também deve explicar como o seu código verifica o horário, pois a folga na segunda-feira pela manhã / sexta-feira à noite deve oferecer alguma oportunidade para alguns maneiras criativas de diminuir o código.
- não deve funcionar das 00:00:00 da manhã de sábado às 23:59:59 de domingo à noite.
- deve sempre trabalhar das 06:00:00 de segunda à manhã às 19:59:59 sexta-feira à noite
- pode funcionar ou não das 00:00:00 de segunda a manhã às 5:59:59 Segunda de manhã
- pode funcionar ou não das 20:00:00 de sexta à noite até às 23:59:59 na sexta à noite pela manhã
edit2: por óbvio imediato, ele deve atender aos três critérios a seguir:
- Não deve chamar uma função que chamou
DayOfWeek
(ou similar), sem usá-la para calcular o tempo da função. - Não deve usar sábado ou domingo ou suas abreviações em inglês.
- Não deve usar Sat ou Sun (ou em maiúsculas e minúsculas) sem uma variável nomeada idêntica, não usada para determinar o dia da semana ou para determinar se o código deve ser executado.