Commit 16765a7a532e35394fd1788b4a7fefe372b8544f
1 parent
6be964e1
Added solution for problem 17
Showing
1 changed file
with
22 additions
and
67 deletions
17.py
1 | -import sys; | |
2 | - | |
3 | -def getLetterNum(num): | |
4 | - switch(num): | |
5 | - if(num == 1): | |
6 | - return 3; | |
7 | - | |
8 | - elif(num == 2): | |
9 | - return 3; | |
10 | - | |
11 | - elif(num == 3): | |
12 | - return 5; | |
13 | - | |
14 | - elif(num == 4): | |
15 | - return 3; | |
16 | - | |
17 | - elif(num == 5): | |
18 | - return 3; | |
19 | - | |
20 | - elif(num == 6): | |
21 | - return 3; | |
22 | - | |
23 | - elif(num == 7): | |
24 | - return 3; | |
25 | - | |
26 | - elif(num == 8): | |
27 | - return 3; | |
28 | - | |
29 | - elif(num == 9): | |
30 | - return 3; | |
31 | - | |
32 | - elif(num == 10): | |
33 | - return 3; | |
34 | - | |
35 | - elif(num == 11): | |
36 | - return 3; | |
37 | - elif(num == 2): | |
38 | - return 3; | |
39 | - elif(num == 2): | |
40 | - return 3; | |
41 | - elif(num == 2): | |
42 | - return 3; | |
43 | - elif(num == 2): | |
44 | - return 3; | |
45 | - elif(num == 2): | |
46 | - return 3; | |
47 | - elif(num == 2): | |
48 | - return 3; | |
49 | - elif(num == 2): | |
50 | - return 3; | |
51 | - elif(num == 2): | |
52 | - return 3; | |
53 | - elif(num == 2): | |
54 | - return 3; | |
55 | - elif(num == 2): | |
56 | - return 3; | |
57 | - | |
58 | - | |
59 | -def countLetters(start, end): | |
60 | - count = 0; | |
61 | - for i in range(start, end+1): | |
62 | - count += getLetterNum(i); | |
63 | - return count; | |
64 | - | |
65 | -start = int(sys.argv[1]); | |
66 | -end = int(sys.argv[2]); | |
67 | -print "Result is " + str(countLetters(start,end)); | |
1 | +#!/usr/bin/python | |
2 | + | |
3 | +S = [0,3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8] | |
4 | +D = [0,3,6,6,5,5,5,7,6,6] | |
5 | +H = 7 | |
6 | +T = 8 | |
7 | + | |
8 | +total = 0 | |
9 | +for i in range(1,1000): | |
10 | + c = i % 10 # singles digit | |
11 | + b = ((i % 100) - c) / 10 # tens digit | |
12 | + a = ((i % 1000) - (b * 10) - c) / 100 # hundreds digit | |
13 | + | |
14 | + if a != 0: | |
15 | + total += S[a] + H # "S[a] hundred | |
16 | + if b != 0 or c != 0: total += 3 # "and" | |
17 | + if b == 0 or b == 1: total += S[b * 10 + c] | |
18 | + else: total += D[b] + S[c] | |
19 | + | |
20 | +total += S[1] + T | |
21 | + | |
22 | +print "Result is: " + str(total) | ... | ... |