Diese Frage gestellt wird sehr inspiriert von dem, was @Mego erstellt mit seinen Heiligen und Holier Zahlen, vielen Dank an ihn und seinen Wortspielen.
Heilige Zahlen sind Zahlen, die nur aus den Ziffern mit Löchern bestehen:
04689
Zahlen mit mindestens einer unheiligen Ziffer gelten als unheilig. Unheilige Ziffern sind per Definition böse, aber die Nähe zu heiligen Ziffern hilft ihnen, neutral zu werden. Je näher sie sind, desto weniger unheilig (1, wenn sie benachbart sind).
Die Unheiligkeit einer Zahl ist die Summe der Unheiligkeit ihrer Ziffern, eine Zahl, die nur aus einer unheiligen Zahl besteht, hat eine unendliche Unheiligkeit.
Number :8 5 5 8 7
Digital Unholiness:0+1+1+0+1
Total Unholiness :3
Number :0 1 7 5 5 2 8 5 7
Digital Unholiness:0+1+2+3+2+1+0+1+2
Total Unholiness :12
Number :1 5 7 3 2 1
Digital Unholiness:∞+∞+∞+∞+∞+∞
Total Unholiness :∞
Number :0 4 6 8 9
Digital Unholiness:0+0+0+0+0
Total Unholiness :0
Deine Aufgabe
Sie müssen ein Programm oder eine Funktion schreiben, die eine positive Ganzzahl oder eine Zeichenfolge, die nur aus Ziffern besteht, als Eingabe verwendet und deren Unheiligkeit ausgibt. Wenn Sie eine Ganzzahl als Eingabe verwenden, können Sie davon ausgehen, dass sie niemals einen führenden Wert hat, 0
da Ihre Sprache sie möglicherweise fallen lässt.
Bei unendlicher Unheiligkeit können Sie zwischen drei Ausgängen wählen
- Das Zeichen
∞
(3 Bytes) - Unendliche Ausgabe mit mindestens einer Ziffer ungleich Null, aber nur Ziffern.
- Ein eingebauter
Infinity
Wert.
Dies ist Code-Golf, also gewinnt der kürzeste Code in Byte, viel Glück!
Infinity
Wertes legal?0
heilige Ziffer handelt. Ich werde den Beitrag so ändern, dass eine Antwort auf der Grundlage nicht führender 0-Zahlen möglich ist.Antworten:
MATL ,
2524 BytesProbieren Sie es online aus!
Eingabe ist eine Zeichenfolge. In der Ausgabe wird unendlich nativ als angezeigt
Inf
.Erläuterung
quelle
Python (3),
137131 BytesErgebnisse
quelle
Pyth,
31292725 BytesProbieren Sie es online aus: Demonstration oder Test Suite
Für jede Ziffer berechne ich die Abstände zu jeder Zahl. Eine Entfernung ist unendlich, wenn die zweite Ziffer nicht heilig ist. Aus diesen Listen nehme ich den minimalen Abstand und fasse ihn zusammen.
Erläuterung:
quelle
JavaScript (ES6), 93 Byte
Wenn dies
Infinity
keine legale Unendlichkeit ist, fügen Sie 13 Bytes für hinzu==1/0?'∞':r
.quelle