Tất cả các giải pháp đã được thử nghiệm thành công vào ngày 18 tháng 4 năm 2013. make_bricks: def make_bricks(small, big, goal):
return goal%5 >= 0 and goal%5 - small <= 0 and small + 5*big >= goal
lone_sum: def lone_sum(a, b, c):
if a == b == c:
return 0
if b == c:
return a
if a == c:
return b
if a == b:
return c
return a + b + c
lucky_sum: def lucky_sum(a, b, c):
if a == 13:
return 0
if b == 13:
return a
if c == 13:
return a + b
return a + b + c
no_teen_sum: def no_teen_sum(a, b, c):
return fix_teen(a) + fix_teen(b) + fix_teen(c)
def fix_teen(n):
#if 13 <= n <= 14 or 17 <= n <= 19:
if n in [13, 14, 17, 18, 19]:
return 0
return n
Tôi coi việc kiểm tra tư cách thành viên danh sách là thanh lịch hơn nhiều hoạt động so sánh. round_sum: def round_sum(a, b, c):
return round10(a) + round10(b) + round10(c)
def round10(n):
if n % 10 >= 5:
return n + 10 - (n % 10)
return n - (n % 10)
close_far: def close_far(a, b, c):
cond1 = abs(a-b) <= 1 and abs(b-c) >=2 and abs(a-c) >= 2
cond2 = abs(a-c) <= 1 and abs(a-b) >=2 and abs(c-b) >= 2
return cond1 or cond2
make_chocolate: def make_chocolate(small, big, goal):
maxBig = goal / 5
if big >= maxBig:
if small >= (goal - maxBig * 5):
return goal - maxBig * 5
if big < maxBig:
if small >= (goal - big * 5):
return goal - big * 5
return -1
defround10 (num): Trả lại (Num+5)/10*10 returnRound10 (a)+vòng10 (b)+vòng 10 (c)
| defclose_far (a, b, c): make_bricks(small, big, goal):
|
| "" "
|
| Đối với vấn đề này, chúng tôi sẽ làm tròn giá trị INT lên đến bội số tiếp theo của 10 nếu
|
| chữ số ngoài cùng bên phải của nó là 5 trở lên, vì vậy 15 vòng lên đến 20. Thay thế, tròn
|
| xuống bội số trước của 10 nếu chữ số ngoài cùng bên phải của nó nhỏ hơn 5,
|
| Vì vậy, 12 vòng xuống đến 10. Cho 3 ints, a b c, trả lại tổng số của chúng tròn
|
| "" "
|
| resto=goal = goal
|
| giá trị. Để tránh sự lặp lại của mã, hãy viết một người trợ giúp riêng "def vòng10 (num):" -= 5*min(big,goal/5)
|
| returnresto-small resto-small <= 0
|
|
|
| và gọi nó là 3 lần. lone_sum(a, b, c):
|
| "" "
|
| Đối với vấn đề này, chúng tôi sẽ làm tròn giá trị INT lên đến bội số tiếp theo của 10 nếu
|
| giống như một giá trị khác, nó không được tính vào tổng.
|
| "" "
|
| sum=0 = 0
|
| sum+= aifanotin [b, c] other0 += a if a not in [b,c] else 0
|
| sum+= bifbnotin [a, c] other0 += b if b not in [a,c] else 0
|
| sum+= cifcnotin [a, b] other0 += c if c not in [a,b] else 0
|
| trả lại sum
|
|
|
| deflucky_sum (a, b, c): lucky_sum(a, b, c):
|
| "" "
|
| Cho 3 giá trị int, a b c, trả lại tổng của chúng. Tuy nhiên, nếu một trong các giá trị
|
| là 13 thì nó không được tính vào tổng và các giá trị bên phải của nó không
|
| đếm. Vì vậy, ví dụ, nếu B là 13, thì cả B và C đều không được tính.
|
| "" "
|
| sum=0 = 0
|
| sum+= aifanotin [b, c] other0 = [a,b,c,13]
|
| sum+= bifbnotin [a, c] other0 n in list[:list.index(13)]:
|
| sum+=n += n
|
| trả lại sum
|
|
|
| deflucky_sum (a, b, c): no_teen_sum(a, b, c):
|
| "" "
|
| Cho 3 giá trị int, a b c, trả lại tổng của chúng. Tuy nhiên, nếu một trong các giá trị
|
| là 13 thì nó không được tính vào tổng và các giá trị bên phải của nó không
|
| đếm. Vì vậy, ví dụ, nếu B là 13, thì cả B và C đều không được tính.
|
| Danh sách = [A, B, C, 13]
|
| forninlist [: list.index (13)]:
|
| defno_teen_sum (a, b, c):
|
| "" "
|
| Cho 3 giá trị int, a b c, trả lại tổng của chúng. Tuy nhiên, nếu bất kỳ giá trị nào là fix_teen(n):
|
| Một thiếu niên - trong phạm vi 13..19 bao gồm - sau đó giá trị đó được tính là 0, n if n not in [13,14,17,18,19] else 0
|
|
|
| Ngoại trừ 15 và 16 không được tính là một thiếu niên. Viết một người trợ giúp riêng fix_teen(a)+fix_teen(b)+fix_teen(c)
|
|
|
| "def fix_teen (n):" Điều đó có giá trị INT và trả về giá trị đó được sửa round_sum(a, b, c):
|
| "" "
|
| Cho 3 giá trị int, a b c, trả lại tổng của chúng. Tuy nhiên, nếu một trong các giá trị
|
| là 13 thì nó không được tính vào tổng và các giá trị bên phải của nó không
|
| đếm. Vì vậy, ví dụ, nếu B là 13, thì cả B và C đều không được tính.
|
| Danh sách = [A, B, C, 13]
|
| forninlist [: list.index (13)]:
|
| defno_teen_sum (a, b, c):
|
| "" "
|
| Cho 3 giá trị int, a b c, trả lại tổng của chúng. Tuy nhiên, nếu bất kỳ giá trị nào là round10(num):
|
| Một thiếu niên - trong phạm vi 13..19 bao gồm - sau đó giá trị đó được tính là 0, (num+5)/10*10
|
|
|
| Ngoại trừ 15 và 16 không được tính là một thiếu niên. Viết một người trợ giúp riêng round10(a)+round10(b)+round10(c)
|
|
|
| "def fix_teen (n):" Điều đó có giá trị INT và trả về giá trị đó được sửa close_far(a, b, c):
|
| "" "
|
| Cho 3 giá trị int, a b c, trả lại tổng của chúng. Tuy nhiên, nếu một trong các giá trị
|
| là 13 thì nó không được tính vào tổng và các giá trị bên phải của nó không
|
| đếm. Vì vậy, ví dụ, nếu B là 13, thì cả B và C đều không được tính.
|
| "" "
|
| Danh sách = [A, B, C, 13] (abs(abs(b)-abs(c))>=2) and \
|
| forninlist [: list.index (13)]:abs(abs(b)-abs(a))<=1 and abs(abs(c)-abs(a))>=2) \
|
| defno_teen_sum (a, b, c): (abs(abs(c)-abs(a))<=1 and abs(abs(b)-abs(a))>=2))
| |