Compare commits

...

7 Commits

3 changed files with 68 additions and 1 deletions

View File

@ -15,7 +15,7 @@ Repository for CDS-2020 Programming and Promt Engineering II
|build|Build-System, Dependencies|build: update requirements.txt|
# Codewars
|Title|Source (src/codewars/)|Test (test/codewars/)|URL|
|Title|Source (src/codewars/)|Test (test/test_codewars/)|URL|
|-|-|-|-|
|Find the force of gravity between two objects|kata_force_of_gravity.py|test_force_of_gravity.py|[5b609ebc8f47bd595e000627](https://www.codewars.com/kata/5b609ebc8f47bd595e000627)|
|The Lamp: Revisited|kata_the_lamp.py|test_the_lamp.py|[570e6e32de4dc8a8340016dd](https://www.codewars.com/kata/570e6e32de4dc8a8340016dd)|
@ -30,3 +30,4 @@ Repository for CDS-2020 Programming and Promt Engineering II
|Who has the most money?|kata_who_the_most_money.py|test_who_the_most_money.py|[528d36d7cc451cd7e4000339](https://www.codewars.com/kata/528d36d7cc451cd7e4000339)|
|Next bigger number with the same digits|kata_next_bigger_number_same_digits.py|test_next_bigger_number_same_digits.py|[55983863da40caa2c900004e](https://www.codewars.com/kata/55983863da40caa2c900004e)|
|Snail|kata_snail.py|test_snail.py|[521c2db8ddc89b9b7a0000c1](https://www.codewars.com/kata/521c2db8ddc89b9b7a0000c1)|
|Chinese Numeral Encoder|kata_chinese_numeral_encoder.py|test_chinese_numeral_encoder.py|[52608f5345d4a19bed000b31](https://www.codewars.com/kata/52608f5345d4a19bed000b31)|

View File

@ -0,0 +1,52 @@
C = {
"-": "",
".": "",
0: "",
1: "",
2: "",
3: "",
4: "",
5: "",
6: "",
7: "",
8: "",
9: "",
10: "",
100: "",
1000: "",
10000: "",
11: "十一",
12: "十二",
13: "十三",
14: "十四",
15: "十五",
16: "十六",
17: "十七",
18: "十八",
19: "十九",
}
D = {2: 10, 3: 100, 4: 1000, 5: 10000}
def to_chinese_numeral(n):
try:
return C[n]
except KeyError:
pass
split_number = [int(x) for x in str(n)]
arranged_number = []
for _ in range(0, len(split_number)):
arranged_number.append(split_number[0])
if len(split_number) in D:
arranged_number.append(D[len(split_number)])
split_number.pop(0)
if arranged_number[-1] == 0:
arranged_number.pop(-1)
return arranged_number
print(to_chinese_numeral(120))

View File

@ -0,0 +1,14 @@
from src.codewars.kata_chinese_numeral_encoder import to_chinese_numeral
def test_to_chinese():
assert to_chinese_numeral(9) == ""
assert to_chinese_numeral(-5) == "负五"
assert to_chinese_numeral(0.5) == "零点五"
assert to_chinese_numeral(10) == ""
assert to_chinese_numeral(110) == "一百一十"
assert to_chinese_numeral(111) == "一百一十一"
assert to_chinese_numeral(1000) == "一千"
assert to_chinese_numeral(10000) == "一万"
assert to_chinese_numeral(10006) == "一万零六"
assert to_chinese_numeral(10306.005) == "一万零三百零六点零零五"