Projekt Euler # 17 "Anzahl der Zeichen" in Python

Problem 16 "Anzahl der Zeichen"

Wenn Sie die Zahlen von 1 bis 5 auf Englisch schreiben, werden eins, zwei, drei, vier, fünf und insgesamt 3 + 3 + 5 + 4 + 4 = 19 Zeichen verwendet. Wenn Sie dann alle Zahlen von 1 bis 1000 (eintausend) auf Englisch schreiben, wie viele Zeichen werden insgesamt sein? Hinweis: Zählen Sie keine leeren Zeichen oder Bindestriche. Beispielsweise zählt 342 (dreihundertzweiundvierzig) als 23 Zeichen, 115 (einhundertfünfzehn) als 20 Zeichen. Beachten Sie, dass "und" verwendet werden. Britischer Brauch.

Python


# n = 5
n = 1000

numbers = {1:"one", 2:"two", 3:"three", 4:"four", 5:"five", 
           6:"six", 7:"seven", 8:"eight", 9:"nine", 10:"ten", 
           11:"eleven", 12:"twelve", 13:"thirteen", 14:"fourteen", 15:"fifteen", 
           16:"sixteen", 17:"seventeen", 18:"eighteen", 19:"nineteen", 20:"twenty", 
           30:"thirty", 40:"forty", 50:"fifty", 60:"sixty", 70:"seventy", 
           80:"eighty", 90:"ninety", 1000:"one thousand"}

def number_to_word(num):
  if num in numbers:
    return numbers[num]
  elif num < 100:
    a = num % 10
    b = (num // 10) * 10
    return number_to_word(b) + "-" + number_to_word(a)
  else:
    a = num % 100
    b = num // 100
    if a == 0:
      return number_to_word(b) + " hundred"
    else:
      return number_to_word(b) + " hundred and " + number_to_word(a)

def to_character_num(word):
  return len(word.replace(" ", "").replace("-", ""))

seq = range(1, n+1)
words = map(number_to_word, seq)
result = sum(map(to_character_num, words))

print result
print result == 21124
print words[:6]
print words[-3:]

Ergebnis


21124
True
['one', 'two', 'three', 'four', 'five', 'six']
['nine hundred and ninety-eight', 'nine hundred and ninety-nine', 'one thousand']

Recommended Posts

Projekt Euler # 17 "Anzahl der Zeichen" in Python
Projekt Euler # 7 "1000 1. Primzahl" in Python
Projekt Euler # 16 "Summe der Kräfte" in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Projekt Euler # 8 "Maximales Produkt in Anzahl Zeichenfolge" in Python
Projekt Euler # 10 "Summe der Primzahlen" in Python
Projekt Euler # 12 "Hochangepasste Dreiecke" in Python
Projekt Euler # 13 "Summe großer Zahlen" in Python
Projekt Euler # 6 "Differenz in der Summe der Quadrate" in Python
Funktionsprogrammierung in Python Project Euler 1
[Hinweis] Project Euler in Python (Problem 1-22)
Funktionale Programmierung in Python Project Euler 3
Funktionsprogrammierung in Python Project Euler 2
Projekt Euler # 15 "Gitterpfad" in Python
Projekt Euler # 4 "Maximale Kalligraphie" in Python
Maximale Anzahl von Zeichen im Python3-Shell-Aufruf (pro Betriebssystem)
Projekt Euler # 3 "Maximale Primfaktoren" in Python
Projekt Euler # 11 "Maximales Produkt im Raster" in Python
Projekt Euler # 9 "Spezielle Pitagolas-Nummer" in Python
Projekt Euler # 14 "Längste Spalte mit Kollatennummern" in Python
Projekt Euler # 2 "Gerade Fibonacci-Zahl" in Python
Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
Primzahl 2 in Python
Geben Sie die Anzahl der CPU-Kerne in Python aus
So ermitteln Sie die Anzahl der Stellen in Python
Teilt die Zeichenfolge durch die angegebene Anzahl von Zeichen. In Ruby und Python.
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Zählen Sie die Anzahl der Zeichen im Text in der Zwischenablage auf dem Mac
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Was ich durch das Lösen von 30 Fragen von Python Project Euler gelernt habe
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Zahlenerkennung in Bildern mit Python
Bildpixel-Manipulation in Python
Projekt Euler 10 "Summe der Primzahlen"
Zeitdelta in Python 2.7-Serie teilen
Unendlicher Primgenerator in Python3
MySQL-automatische Escape-Funktion von Parametern in Python
Umgang mit JSON-Dateien in Python
Implementierung eines Lebensspiels in Python
Audio-Wellenform-Anzeige in Python
Erstellen Sie eine Python-Projektdokumentation in Sphinx
Das Gesetz der Zahlen in Python
Studiere, nummeriere das Spiel mit Python
Implementierung der ursprünglichen Sortierung in Python
Projekt Euler 11 "Maximales Produkt im Raster"
Reversibles Verwürfeln von Ganzzahlen in Python
Projekt Euler 9 Aufbewahrung der Berechnungsergebnisse
Projekt Euler 37
Projekt Euler 7
Projekt Euler 47
Projekt Euler 31
Projekt Euler 4
Projekt Euler 38
Projekt Euler 17
Projekt Euler 26
Projekt Euler 8
Projekt Euler 23
Projekt Euler 22
[Python] Lassen Sie uns die Anzahl der Elemente im Ergebnis bei der Operation des Sets reduzieren