017 – Anzahl der Buchstaben der Zahlen 1 bis 1000

 

Wenn man die englischen Zahlen von 1 bis 5 als Wörter schreibt, erhält man:

one two three four five

Die Anzahl der Buchstaben beträgt 3 + 3 + 5 + 4 + 4 = 19.

Wie viele Buchstaben werden benötigt, um die Zahlen von 1 bis 1000 (einschließlich) aufzuschreiben?

Hinweise:
Leerzeichen werden nicht gezählt.
Beispiele: 342 (three hundred and forty-two) enthält 23 Buchstaben und 115 (one hundred and fifteen) enthält 20 Buchstaben.

Lösung

Es werden zunächst die Anzahlen der Buchstaben der Zahlen 1 bis 19 festgelegt. Die anderen Zahlen werden kombiniert (siehe Kommentare im Programmtext).

Matlab-Code:

clc
clear all
tic

z = zeros(1000, 1);

% Zahlen von 1 bis 19 manuell:
z(1:19) = [3, 3, 5, 4, 4, 3, 5, 5, 4, 3, 6, 6, 8, 8, 7, 7, 9, 8, 8];

% erste Ziffer von Zahlen 20 bis 99:
z(20:39) = 6;
z(40:69) = 5;
z(70:79) = 7;
z(80:99) = 6;

% zweite Ziffer von Zahlen 20 bis 99:
for d = 2 : 9
    for e = 1 : 9
        z(10 * d + e) = z(10 * d + e) + z(e);
    end
end

% erste Ziffer der Zahlen über 100
for h = 1 : 9
    z(100 * h : 100 * (h + 1) - 1) = z(h);
end

% "hundret and":
z(100:999) = z(100:999) + 10;

% kein "and" für Vielfache von 100:
for h = 1 : 9
    z(100 * h) = z(100 * h) - 3;
end

% zweite und dritte Ziffer:
for h = 1 : 9
    z(100*h +1 : 100*(h+1) -1) = z(100*h +1 : 100*(h+1) - 1) + z(1 : 99);
end

% 1000:
z(1000) = 11;

summe = sum(z)

toc

Ergebnis: 21124
Rechenzeit: 0.000325 Sekunden

Ähnliche Artikel

Kommentar verfassen