Bestimmen Sie anhand der Eingabe der ersten und der zweiten Zahl (beide positive ganze Zahlen, Null ausgeschlossen), auf wie viele Arten Sie die zweite aus der ersten machen können, indem Sie die folgenden Aktionen ausführen : +1
, +2
und *3
. Operationen werden einfach von links nach rechts angewendet.
Beispiele:
Eingabe :
1 2
. Ausgabe :1
. Dh, man könnte nur erhalten ,2
indem Sie+1
, so eine Art und Weise.Eingabe :
1 3
. Ausgabe :3
. Dh du könntest 3 bekommen, indem du entweder+2
oder tust+1+1
oder*3
Eingabe :
1 4
. Ausgabe :4
.Eingabe :
2 6
. Ausgabe :6
.Eingabe :
2 7
. Ausgabe :9
.Eingabe :
1 10
. Ausgabe :84
.
Falls es keine Möglichkeiten gibt, zB 100 100
oder 100 80
, ist die Ausgabe 0
.
Sie können die Eingabe auch als Array oder als Zeichenfolge mit einem beliebigen Trennzeichen verwenden.
Die kürzeste Lösung gewinnt.
*3 +2 +1
so oft bewerben+1
, wie Sie möchten, und sich dann bewerben , um auf 0 zu kommen.Antworten:
Pyth -
2624 BytesEs scheint einen Fehler in Pyth zu geben, der dazu führt, dass Eingaben in der falschen Reihenfolge vorgenommen werden, aber es sollte sowieso keine Rolle spielen.
Testsuite .
(
1 10
Zeitüberschreitung online, aber auf meinem Computer funktioniert).quelle
10
, aber Python ist slooooooowJavascript ES6,
4544 BytesBeispielläufe:
quelle
=B
und(B=)
(b
absichtlich weggelassen) ist 6 Zeichen und die Alternative besteht darin,,b
3 Mal an die rekursiven Aufrufe zu übergeben, die ebenfalls 6 Zeichen sind. Wie auch immer, gute Arbeit.Pyth, 29 Bytes
Probieren Sie es online aus!
Definiert eine Funktion. Dem Link wurden drei Bytes hinzugefügt, um die Funktion aufzurufen.
quelle