-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathp017.py
More file actions
120 lines (90 loc) · 1.34 KB
/
Copy pathp017.py
File metadata and controls
120 lines (90 loc) · 1.34 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
def prefix(x):
if x is 1:
# one
return 3
if x is 2:
# two
return 3
if x is 3:
# thir
return 4
if x is 4:
# four
return 4
if x is 5:
# fif
return 3
elif x is 6:
# six
return 3
elif x is 7:
# seven
return 5
elif x is 8:
# eigh
return 4
elif x is 9:
# nine
return 4
else:
return 0
def ones(x):
if x is 0:
return 0
elif x is 3:
# three
return 5
elif x is 5:
# five
return 4
elif x is 8:
# eight
return 5
else:
return prefix(x)
def teens(x):
if x is 0:
# ten
return 3
elif x is 1:
# eleven
return 6
elif x is 2:
# twelve
return 6
else:
return prefix(x) + 4
def tens(number):
x = int(number / 10)
y = number % 10
if x is 0:
return 0 + ones(y)
if x is 1:
return teens(y)
elif x is 2:
# twenty
return 6 + ones(y)
elif x is 4:
# forty
return 5 + ones(y)
else:
# prefix + ty + ones
return prefix(x) + 2 + ones(y)
def hundreds(number):
x = int(number / 100)
y = number % 100
val = 0
if x:
# ones + "hundred"
val += ones(x) + 7
if y:
# and
val += 3
if y:
val += tens(y)
return val
def main():
result = sum(hundreds(x) for x in range(1, 1000))
# one thousand
result += 11
return result