Meu chefe * não entende por que seus programadores reagem negativamente aos usuários que mudam os requisitos do programa. Ajude-a a entender! Em cada resposta, crie um novo requisito. Em seguida, escreva um programa / função que resolva esse requisito e todos os requisitos anteriores, enquanto estiver em uma nova linguagem de programação.
Exemplos
O usuário 1 publica a primeira resposta. Ele especifica que o programa deve emitir "Olá, mundo". Ele cria um programa em Java que exibe "Olá, mundo".
O usuário 2 publica a segunda resposta. Ela especifica que o programa deve aceitar a entrada n ea saída do n º privilegiada, até o idioma número máximo. Ela cria um programa em C ++ que aceita entrada n e emite o n º prime e saídas "Olá, mundo". Ela não poderia ter criado um programa em Java.
O usuário 3 publica a terceira resposta. Ele especifica que a fonte do programa não pode conter o texto "Olá". Ele cria uma função em Python que aceitam a entrada n e emite o n º nobre e "Olá, mundo". enquanto não estiver usando o texto "Olá" em sua fonte. Ele não poderia ter criado um programa em Java ou C ++.
Formato da resposta
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Regras de resposta
A resposta deve seguir o formato acima, ou similar.
A resposta pode ser um programa ou uma função.
A resposta deve atender a todos os requisitos, inclusive a resposta atual.
O mesmo usuário não pode postar duas respostas seguidas.
Se duas respostas são postadas com o mesmo número, a que foi postada mais tarde deve ser excluída.
Não edite seus requisitos, a menos que você tenha estragado tudo e nenhuma outra resposta tenha sido publicada.
Se sua resposta não estiver de acordo com sua regra e com todas as outras regras, ela será inválida. Tente corrigir isso antes que outra pessoa poste a próxima resposta.
Versões diferentes do mesmo idioma contam apenas como idiomas diferentes se o programa ou a função criada em uma versão se comportar de maneira diferente na outra versão.
A resposta pode não aceitar qualquer entrada não necessária e pode não gerar nada que não seja necessário, exceto o espaço em branco necessário. No entanto, enquanto nos bastidores o programa deve atender a todos os requisitos "ocultos" (do usuário), ele pode fazer o que você quiser, especialmente se você precisa atender a um requisito de tempo de execução.
Regras de Requisitos
O requisito deve especificar apenas um requisito. Esse requisito pode ser condicional e, se esse requisito exigir uma entrada e / ou uma saída, isso poderá ser incluído.
O requisito não pode remover ou modificar requisitos anteriores ou entrar em conflito com eles, mas pode estender um (especifique qual).
Se o requisito restringir a fonte (fonte restrita ) ou exigir texto na fonte, ele poderá remover apenas uma única sequência (por exemplo
0
,Hello
) ou exigir um único caractere.O requisito não pode exigir que a fonte tenha menos de 100 bytes, exija uma codificação específica ou, por si só, descarte a maioria dos idiomas comuns.
O requisito pode não forçar a fonte a obedecer a um determinado padrão (por exemplo, iniciar cada linha com um determinado caractere ou (@Conor) com hash para um determinado valor) diferente do especificado na fonte restrita.
Isso é um encadeamento de respostas , portanto todas as respostas se baseiam nas respostas anteriores. Eu e talvez outros tentaremos manter uma lista de todos os requisitos. Para ver as respostas em ordem, você pode classificar por mais antigo. Para ver a resposta mais recente, classifique pela mais antiga e navegue até o final da lista.
Como ganhar (alterado para voto em espera):
Quando nenhuma resposta é publicada por duas semanas, o desafio termina e as pontuações serão calculadas. As pontuações serão calculadas somando o número total de respostas de cada usuário, mas ponderando as postagens com base em quão distantes estão da cadeia (uma vez que as postagens posteriores têm mais requisitos, são mais difíceis).
Pseudo-código:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Exemplo:
Sally tem três respostas. Ela postou as respostas 5, 7 e 20.
A pontuação dela será 1.05 + 1.07 + 1.2 = 3.32
. Se fosse uma soma direta de respostas, sua pontuação seria 3, mas o peso da profundidade da cadeia recompensa respostas mais difíceis.
Para iniciar:
Aqui está o primeiro requisito, fornecido pelo meu chefe *:
Requisito 0: O programa deve gerar 0 antes de qualquer outra coisa.
* fictício
Lista de requisitos e idiomas
Observe que isso pode estar desatualizado - observe a última resposta postada imediatamente antes de postar sua resposta para garantir que você esteja cumprindo todos os requisitos. Lamento muito que você crie um programa requintado, apenas para alguém o furtar - se você realmente deseja publicá-lo de qualquer maneira, especifique não concorrente.
Requisito completo (mas talvez não atual): Não pode conter
0
,*
ou]
no código-fonte, e não pode usar um ingresso incorporado à nova linha. Saídas0
, em seguida, recebe uma entrada inteira não negativan
e gera uma nova linha seguida pelon
número de Fibonacci indexado a 0 (pode ser1
indexado), seguida por uma nova linha, seguida pela mesma entrada n ao quadrado, seguida por uma nova linha, seguida por uma nova linha, seguida pelan
multiplicação por uma nova entradam
, seguida por uma nova linha, seguida por10^B
, ondeB
é o número de bytes no código-fonte, seguido por uma nova linha, seguida pelo número principaln
th0
indexado (também pode ser1
indexado), seguido por uma nova linha, seguido pelo maior divisor comum de n e m.0: O programa deve produzir
0
antes de qualquer outra coisa. Idioma: N / A
1: A fonte do programa não pode conter0
. Idioma: 05AB1E
2: O programa obtém uma entrada inteira não negativan
e gera uma nova linha seguida do0
n-ésimo número de Fibonacci não1
indexado (pode ser indexado). Idioma: dc
3: O programa gera uma nova linha, seguida pela mesma entradan
ao quadrado. Idioma: J
4: O programa gera uma nova linha, seguida pelan
multiplicada por uma nova entradam
. Idioma: Ohm
5: O programa não pode conter*
(código ASCII0x2A
). Idioma: Python 3
6: O programa gera uma nova linha, seguida de10^B
, ondeB
é o número de bytes no código-fonte. Idioma: Mathematica
7: O programa gera uma nova linha, seguida pelo número principaln
th0
indexado (também pode ser1
indexado). Idioma: JavaScript (ES6)
8: O programa não usa um ingresso incorporado em novas linhas, mas pode usar qualquer outro ingresso incorporado. Idioma: Geléia
9: O programa gera uma nova linha seguida pelo Maior Divisor Comum de n e m. Idioma: Scala
10: O programa não pode conter]
. Idioma: Pyth
Pontuações atuais (ordenadas pela primeira postagem)
Okx : 1,01
R. Kap : 2,09
Conor O'Brien : 1,03
Nick Clifford : 1,04
Eric Rose : 1,05
Greg Martin : 1,06
Erik, o exaltador : 2,18
math_junkie : 1,09