-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path017.py
58 lines (42 loc) · 1.74 KB
/
017.py
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
# !/usr/bin/python3
# -*- coding: utf-8 -*-
print(f'----------------------17--')
units = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve",
"thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
tens = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
scales = ["hundred", "thousand", "million", "billion", "trillion"]
def int2text(num):
st = ''
if str(num)[-4:-3]:
st += units[int(str(num)[-4:-3])] + scales[1]
# print('>', units[int(str(num)[-4:-3])], scales[1])
if str(num)[-3:] == '000':
return st
if str(num)[-3:-2]:
st += units[int(str(num)[-3:-2])] + scales[0]
# print('>', units[int(str(num)[-3:-2])], scales[0])
if str(num)[-2:] == '00':
return st
# print('> and')
st += 'and'
if str(num)[-2:-1]: # двузнач
if int(str(num)[-2:]) > 19:
st += tens[int(str(num)[-2:-1])]
# print('>', tens[int(str(num)[-2:-1])])
if not int(str(num)[-1]) == 0: # ноль вконце
st += units[int(str(num)[-1])]
# print('>', units[int(str(num)[-1])])
else:
st += units[int(str(num)[-2:])]
# print('>', units[int(str(num)[-2:])])
else: # одознач
st += units[int(str(num)[-1])]
# print('>', units[int(str(num)[-1])])
return st
def count_characters(st):
# print(len(st.replace('-', '').replace(' ', '')))
return len(st.replace('-', '').replace(' ', ''))
nn = 0
for i in range(1, 1001):
nn += count_characters(int2text(i))
print(i, int2text(i), count_characters(int2text(i)), nn)