Problem
Original anzeigen (Englisch)Zähle alle Ganzzahlen von left bis right (beide einschließlich), bei denen keine benachbarten Ziffern gleich sind. Verwende dabei die übliche Dezimalschreibweise ohne führende Nullen. Die Null und alle anderen einstelligen Zahlen erfüllen die Bedingung.
Implementiere counting_numbers(left, right).
Eingabe
left: Der kleinste erlaubte Wert.
right: Der größte erlaubte Wert.
Ausgabe
Gib zurück, wie viele Werte die Bedingung erfüllen.
Einschränkungen
0 ≤ left ≤ right ≤ 10¹⁸. Der Bereich kann zu groß sein, um jede Zahl einzeln zu prüfen.
Beispiele
Eingabe:
left = 10
right = 15
Erwartete Ausgabe:
expected = 5
Eingabe:
long long left = 10;
long long right = 15;
Erwartete Ausgabe:
long long expected = 5;
Eingabe:
long left = 10;
long right = 15;
Erwartete Ausgabe:
long expected = 5;
Erläuterung
Nur 11 hat gleiche benachbarte Ziffern. Die anderen fünf Zahlen erfüllen die Bedingung.
Eingabe:
left = 0
right = 9
Erwartete Ausgabe:
expected = 10
Eingabe:
long long left = 0;
long long right = 9;
Erwartete Ausgabe:
long long expected = 10;
Eingabe:
long left = 0;
long right = 9;
Erwartete Ausgabe:
long expected = 10;
Erläuterung
Alle zehn Werte bestehen nur aus einer Ziffer und haben daher keine gleichen Nachbarn.
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.