-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path017_letters_count.py
More file actions
executable file
·55 lines (47 loc) · 1.37 KB
/
017_letters_count.py
File metadata and controls
executable file
·55 lines (47 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def main():
numbers = {
1: len("one"),
2: len("two"),
3: len("three"),
4: len("four"),
5: len("five"),
6: len("six"),
7: len("seven"),
8: len("eight"),
9: len("nine"),
10: len("ten"),
11: len("eleven"),
12: len("twelve"),
13: len("thirteen"),
14: len("fourteen"),
15: len("fifteen"),
16: len("sixteen"),
17: len("seventeen"),
18: len("eighteen"),
19: len("nineteen"),
20: len("twenty"),
30: len("thirty"),
40: len("forty"),
50: len("fifty"),
60: len("sixty"),
70: len("seventy"),
80: len("eighty"),
90: len("ninety"),
100: len("hundred"),
1000: len("thousand")}
sum_1to9 = 0
sum_10to19 = 0
sum_20to99 = 0
sum_100to999 = 0
for i in range(1, 10):
sum_1to9 += numbers[i]
for i in range(10, 20):
sum_10to19 += numbers[i]
for i in range(20, 100, 10):
sum_20to99 += numbers[i]
sum_20to99 = 10 * sum_20to99 + 8 * sum_1to9
sum_100to999 = (999 - 99) * numbers[100] + (999 - 99 - 9) * len("and") + 100 * sum_1to9 + 9 * (sum_1to9 + sum_10to19 + sum_20to99)
count = sum_1to9 + sum_10to19 + sum_20to99 + sum_100to999 + numbers[1] + numbers[1000]
print(count)
if __name__ == '__main__':
main()