Definition in Wikipedia: https://de.wikipedia.org/wiki/Palindrom
„Ein Palindrom (von griechisch Παλίνδρομος palíndromos ‚rückwärts laufend‘) ist eine Zeichenkette, die von vorn und von hinten gelesen dasselbe ergibt.“
Aufgabe:
Problemanalyse:
- Zahl in String (Zeichenkette) verwandeln.
- Zeichenkette in Liste umwandeln.
- Die Liste in der Mitte teilen (Unterschied ob die Länge gerade oder ungerade ist).
- Die Reihenfolge der rechten Teilliste umdrehen.
- Wenn die linke und die reverse rechte Teilliste gleich sind, liegt ein Palindrom vor.
Maxima-Online:
http://maxima-online.org/?inc=r1519764495
Beispiele:
Code:
1/* Eingabe der Zahl (sinnvollerweise ab 3 Stellen) */;
z:32113;
2/* Verarbeitung */;
z:charlist(string(z));
n:length(z);
if mod(n,2)=0 then block(l1:makelist(z[i],i,1,n/2), l2:makelist(z[i],i,n/2+1,n)) else block(l1:makelist(z[i],i,1,floor(n/2)+1),
l2:makelist(z[i],i,floor(n/2)+1,n));
3/* Ausgabe */;
display(l1,l2);
if l1=reverse(l2) then "Es liegt ein Palindrom vor." else "Es liegt KEIN Palindrom vor.";
1 Comment
Kommentare sind geschlossen.