Finde Palindromprodukte in einem gegebenen Bereich.
Eine Palindromzahl ist eine Zahl, die gleich bleibt, wenn man ihre Ziffern umdreht.
Zum Beispiel ist 121 eine Palindromzahl, aber 112 nicht.
Gegeben ist ein Zahlenbereich. Finde darin das größte und das kleinste Palindromprodukt, das Produkt zweier Zahlen aus diesem Bereich ist.
Deine Lösung soll das größte und das kleinste Palindromprodukt zurückgeben, zusammen mit den Faktoren des jeweiligen Produkts innerhalb des Bereichs. Wenn das größte oder das kleinste Palindromprodukt mehr als ein Faktorenpaar innerhalb des Bereichs hat, gib alle Paare zurück.
Gegeben ist der Bereich [1, 9] (jeweils einschließlich) ...
Und gegeben ist die Liste aller möglichen Produkte in diesem Bereich:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]
Die Palindromprodukte sind (in diesem Fall) alle einstelligen Zahlen:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Das kleinste Palindromprodukt ist 1.
Seine Faktoren sind (1, 1).
Das größte Palindromprodukt ist 9.
Seine Faktoren sind (1, 9) und (3, 3).
Gegeben ist der Bereich [10, 99] (jeweils einschließlich) ...
Das kleinste Palindromprodukt ist 121.
Seine Faktoren sind (11, 11).
Das größte Palindromprodukt ist 9009.
Seine Faktoren sind (91, 99).
Um diese Übung zu lösen, musst du diese beiden Funktionen implementieren:
largestPalindromesmallestPalindromeBeide Funktionen bekommen eine untere und eine obere Faktorgrenze und geben ein Paar
(value, [(factor1, factor2)]) zurück, das das Palindrom und seine möglichen
Faktorpaare enthält.
Wenn du dir bei den Typen unsicher bist, kannst du die vorgegebenen Signaturen verwenden, aber lass dich davon nicht in deiner Kreativität einschränken.
Es ist in Ordnung, Duplikate in der Faktorliste zurückzugeben, und die Reihenfolge der Faktoren spielt keine Rolle.
Für die Suche nach kleinen oder großen Palindromen solltest du einen etwas anderen Algorithmus verwenden.
Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.