Tallying é um sistema simples de contagem que funciona na base 5. Existem vários sistemas diferentes de cálculo usados em todo o mundo, mas o que é usado na maioria dos países de língua inglesa é talvez o mais simples - contar unidades marcando linhas verticais e, em seguida, para cada quinta marca coloca uma linha horizontal na coleção anterior de quatro. Isso agrupa as marcas de contagem em grupos de 5 (e facilita a contagem rápida).
Você vai escrever um programa que exibe marcas de registro até um determinado valor. Mas calcular apenas na base 5 é chato! Portanto, seu programa também deve poder exibir registros em diferentes bases.
Entrada
A entrada será um ou dois valores inteiros não negativos separados por vírgula (por exemplo, 9
ou 8,4
). O primeiro número é o valor que deve ser exibido pelo registro. O segundo valor é a base da contagem. Se o segundo valor não for fornecido, use a base 5 .
Resultado
A saída será o valor inserido representado como marcas de registro de arte ASCII. Aqui estão alguns exemplos contra os quais você pode testar seu programa - sua saída deve corresponder exatamente a eles!
Entrada: 12
ou12,5
| | | | | | | | | |
-+-+-+-+- -+-+-+-+- | |
| | | | | | | | | |
Entrada: 7,3
| | | | |
-+-+- -+-+- |
| | | | |
Entrada: 4,2
| |
-+- -+-
| |
Entrada: 6,1
ou 6,10
(observe os espaços iniciais)
| | | | | |
| | | | | |
| | | | | |
Observe também que a base 1 deve ser inconsistente - somente linhas verticais devem ser usadas.
Se um dos valores inseridos for 0, não haverá saída alguma (e seu programa deve terminar normalmente).
Regras
- Isso é código-golfe , portanto a implementação correta mais curta (em bytes) vence.
- A entrada / saída pode estar em qualquer meio adequado (por exemplo, stdin / stdout, arquivo ...).
- A entrada pode ser na forma de vários argumentos de linha de comando ou separados por espaços, etc., se for mais adequado para o idioma de destino.
- Novas linhas à direita são permitidas na saída. Os espaços à direita não são. Esta regra se aplica somente quando há uma saída (ou seja, não quando o valor inserido é 0).
- Seu código deve ter como padrão a base 5 quando nenhuma base for inserida.
-+-
representaria dois, porque há uma linha vertical e uma pontuação horizontal através dela. A base 1 teria apenas linhas verticais. @AndoDaan ammended.
--- --- --- --- --- ---
então. Para obter consistência com as outras bases, você deve fazer um ataque horizontal através de b-1
linhas verticais. Se pretende ser inconsistente, você deve declarar isso explicitamente.
6,1
parecer mais-+- -+- -+- -+- -+- -+-
?