Gegeben  ist eine Zahl  X (z.B. 48275)

1 Schritt Decrementiere die erste Ziffer dieser Zahl X um eins. Man bekommt eine neue Zahl X'(38275).
2 Schritt Trenne X'an der Position X.Length/2 und erhalte aund  b (38|275 --> 38 und 275)
3 Schritt Spiegel nun  a an der Y-Achse. Man bekommt a'(aus 38 wird 83)
4 Schritt Jetzt subtrahiere  a' von  X' und erhalte X''(38275 - 83 = 38174) 
5 Schritt Dividiere  X'' durch 10hoch( X.Length/2) und erhalte X'''(38174 / 100 = 381,74)
6 Schritt Runde  X''' immer auf, falls Nachkommastellen existieren (Math.Ceiling(381,74) = 382)
Man hat nun die Anzahl der Palindrome im Intervall von 10hoch(x.Length-1) bis zur Zahl X in der Hand,
in diesem Beispiel also von 10000 bis 48275 = 382 Palindrome.
7 Schritt Prüfe, ob  X geradstellig ist. Wenn ja, gibt es in diesem Intervall nur gerade Palindrome.
Falls die Anzahl der Stellen von X ungerade ist, muss das Ergebniss noch durch 2 geteilt werden, um die Anzahl der geraden und ungeraden Palindrome zu bekommen.
382/2 = 191 gerade und 191 ungerade Palindrome.
8 Schritt

Addiere die Anzahl Palindrome der vorhergehenden n-stelligen Intervalle dazu
382 + 90 + 90 = 562 Gesamtpalindrome .

Zur Info:
  Im 3-, und 4 stelligen Bereich gibt es jeweils 90 Palindrome.
  Im 5-, und 6 stelligen Bereich gibt es jeweils 900 Palindrome.
  Im 7-, und 8 stelligen Bereich gibt es jeweils 9000 Palindrome etc.

Das ist alles.

 

Hier noch ein Beispiel zum mitmachen
Gegeben ist die Zahl X = 654738

1 Schritt erste Ziffer decrementieren: 
  654738
- 100000
----------
= 554738
2 Schritt Trennen an Stelle X.Lengt/2
554|738
3 Schritt Spiegeln der ersten Zahl.
aus 554 wird 455
4 Schritt gespiegelte zahl subtrahieren
  554738
- 455
----------
= 554283
5 Schritt Dividieren durch 10hoch(X.Length/2)

554283
--------   = 554,238
1000
6 Schritt Aufrunden: aus 554,238 wird 555
Man hat nun die Anzahl der Palindrome im Intervall von 100000 bis 654738
7 Schritt Da die Zahl X aus 6 Ziffern besteht, gibt es in diesem Intervall 555 gerade Palindrome (d.h. ihre die Quersumme ist gerade)
8 Schritt

Addiere die Palindrome der vorhergehenden Intervalle dazu
555 + 90+90+900 = 1635 Gesamtpalindrome

 


Und weil es so schön war, noch ein drittes Beispiel
Gegeben ist die Zahl X = 173

1 Schritt erste Ziffer decrementieren: 
  173
- 100
----------
= 073
2 Schritt Trennen an Stelle X.Lengt/2
0|73
3 Schritt Spiegeln der ersten Zahl.
die 0 bleibt wie sie ist
4 Schritt gespiegelte zahl subtrahieren
  73
- 0
----------
= 73
5 Schritt Dividieren durch 10hoch(X.Length/2)

73
--------   = 7,3
10
6 Schritt Aufrunden: aus 7,3 wird 8
Man hat nun die Anzahl der Palindrome im Intervall von 100 bis 173
7 Schritt Da die Zahl X aus 3 Ziffern besteht, muss halbiert werden. Somit gibt es 4 gerade und 4 ungerade Palindrome.
8 Schritt

Da es keine vorhergehenden Intervalle gibt (Palindrome gehen ab 101 los) bleibt 8 (bzw. 4/4) erhalten.