Fundo:
Costumo descobrir que, ao navegar em um site Stackexchange, começo a me perguntar como as pessoas obtêm a quantidade de reputação que possuem. Eu sei que sempre posso contar com o codegolf SE para resolver meus problemas, então aqui está:
Crie um programa que aceite um número inteiro positivo que represente a reputação de uma pessoa. Vamos ignorar as recompensas e dizer que estas são as únicas maneiras de ganhar / perder rep no SE (tabela completa aqui ):
- Toda conta começa com 1 representante e não pode ficar abaixo dessa
- Sua pergunta foi aprovada = +5
- Sua resposta está com voto positivo = +10
- Sua pergunta foi rebaixada = -2
- Sua resposta foi reduzida = -2
- Você recusou uma resposta = -1
- Sua resposta é aceita = +15
- Você aceita uma resposta = +2
Seu programa deve descobrir quantas dessas ações ocorreram na conta desse usuário para obter o representante que ele possui. Ele deve descobrir o menor número de ações para chegar a esse nível de representante. Exemplos:
Entrada: 11 Saída: 1 resposta com voto positivo
Entrada: 93 Saída: 6 respostas aceitas, 1 resposta aceita
Nestes exemplos, quando digo 'pergunta votada', significa que a pergunta dessa pessoa foi votada. Quando digo "resposta com voto negativo", isso significa que eles votaram contra a resposta de outra pessoa.
Regras:
code-golf , então o código mais curto que pode fazer isso vence.