求1-1000的所有的数,转为英文单词后,它们的字母共有多少个
不计算空格和连字符
例如
42 (three hundred and forty-two)共有23个字母
115 (one hundred and fifteen) 有20个字母
python代码如下
a = {0: '', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine'}
b1 = {10: 'ten', 11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'fourteen', 15: 'fifteen', 16: 'sixteen',
17: 'seventeen',
18: 'eighteen', 19: 'nineteen'}
b2 = {2: 'twenty', 3: 'thirty', 4: 'forty', 5: 'fifty', 6: 'sixty', 7: 'seventy', 8: 'eighty', 9: 'ninety'}
s = ''
for i in range(1, 1000):
t = i // 100
if t > 0:
if t*100==i:
s = s + a[t] + 'hundred'
else :s = s + a[t] + 'hundredand'
if i % 100 < 20:
if i % 100 < 10:
s = s + a[i % 100]
else:
s = s + b1[i % 100]
else:
t1 = i % 10
t2 = i % 100 // 10
s = s + b2[t2] + a[t1]
print(s)
print(len(s)+len('onethousand'))