Maneiras de chegar ao número
Dada a entrada do primeiro número e o segundo número (ambos inteiros positivos, zero EXCLUÍDA), determinar em quantas maneiras você poderia fazer o segundo fora do primeiro, usando seguintes ações: +1, +2e *3. As operações são simplesmente aplicadas da esquerda para a direita.
Entrada: 1 2. Saída: 1. Ou seja, você só poderia começar 2fazendo +1, por isso de uma maneira.
Entrada: 1 3. Saída: 3. Ou seja, você pode obter 3 fazendo +2ou +1+1, ou*3
Entrada: 1 4. Saída: 4.
Entrada: 2 6. Saída: 6.
Entrada: 2 7. Saída: 9.
Entrada: 1 10. Saída: 84.
Caso não haja maneiras, por exemplo 100 100, ou 100 80, a saída é 0.
Você também pode receber a entrada como uma matriz ou string com qualquer separador conveniente.
A solução mais curta vence.
Parece que pode ser um tolo, desculpe se for - não encontrou uma pergunta semelhante.
E quanto às entradas para as quais a resposta deve ser infinita? Por exemplo, qualquer entrada em que o primeiro número inteiro seja negativo, porque você pode multiplicar por três e depois incrementar de volta ao número original e repetir quantas vezes quiser.
@ Patrick: Mas faz sentido. Começando de -1 e indo para 0, você pode aplicar *3 +2 +1quantas vezes quiser e, em seguida, aplicar +1para chegar a 0.
@ Peter Fair observação, restrita a números positivos.
— Nicael 22/06
Pitão - 26 24 bytes
Parece haver um bug no Pyth que está fazendo com que ele receba entradas na ordem errada, mas não deve importar de qualquer maneira.
( 1 10atingiu o tempo limite on-line, mas funcionou no meu computador).
Tempo esgotado, com números tão pequenos? Hã.
@nicael sim, há apenas 59K maneiras que eu verificar se há 10, mas pyth é slooooooow
Uso interessante de parâmetros padrão, embora seja certo que não salva bytes aqui. =Be (B=)( bomitido de propósito) tem 6 caracteres e a alternativa está passando ,b3 vezes para as chamadas recursivas, que também têm 6 caracteres. Enfim, bom trabalho.