Compte tenu de l'entrée du premier nombre et le deuxième nombre ( les deux nombres entiers positifs, zéro non inclus), déterminer combien de façons pourriez - vous faire le deuxième de la première, en utilisant les actions suivantes: +1
, +2
et *3
. Les opérations sont simplement appliquées de gauche à droite.
Exemples:
Entrée:
1 2
. Sortie:1
. C'est-à-dire que vous ne pouvez y arriver2
qu'en faisant+1
, donc dans un sens.Entrée:
1 3
. Sortie:3
. C'est-à-dire, vous pouvez obtenir 3 en faisant+2
ou+1+1
, ou*3
Entrée:
1 4
. Sortie:4
.Entrée:
2 6
. Sortie:6
.Entrée:
2 7
. Sortie:9
.Entrée:
1 10
. Sortie:84
.
Dans le cas où il n'y a aucun moyen, par exemple 100 100
, ou 100 80
, la sortie est 0
.
Vous pouvez également prendre l'entrée comme un tableau ou une chaîne avec n'importe quel séparateur pratique.
La solution la plus courte l'emporte.
*3 +2 +1
autant de fois que vous le souhaitez, puis postuler+1
pour vous rendre à 0.Réponses:
Pyth -
2624 octetsIl semble y avoir un bug dans Pyth qui le fait prendre les entrées dans le mauvais ordre, mais cela ne devrait pas avoir d'importance de toute façon.
Suite de tests .
(
1 10
expiré en ligne, mais a fonctionné sur mon ordinateur).la source
10
, mais pyth est slooooooowJavascript ES6,
4544 octetsL'exemple s'exécute:
la source
=B
et(B=)
(b
omis exprès) est de 6 caractères et l'alternative passe,b
3 fois aux appels récursifs qui est également de 6 caractères. Quoi qu'il en soit, bon travail.Pyth, 29 octets
Essayez-le en ligne!
Définit une fonction. Ajout de trois octets dans le lien pour appeler la fonction.
la source