Tracks
/
Haskell
Haskell
/
Übungen
/
Palindromprodukte
Palindromprodukte

Palindromprodukte

Mittel

Anleitung

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.

Beispiel 1

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).

Beispiel 2

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).

Hinweise

Um diese Übung zu lösen, musst du diese beiden Funktionen implementieren:

  • largestPalindrome
  • smallestPalindrome

Beide 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.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Haskell Exercism

Bereit, mit Palindromprodukte zu starten?

Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.