|
发表于 2021-10-21 19:25:26
|
显示全部楼层
#共有多少个三角形词
'''
角形数序列中第 n 项的定义是:Tn = 1/2n(n+1);此前十个三角形数是:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
'''
from time import *
#生成n项三角形数序列
def creat_triangle_numlist(n):
triangle_numlist = []
for i in range(1, n+1):
triangle_numlist.append((i * (i+1)) // 2)
return triangle_numlist
def get_letter_value(letter):
letter_dic = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8, 'I':9\
, 'J':10, 'K':11, 'L':12, 'M':13, 'N':14, 'O':15, 'P':16, \
'Q':17 , 'R':18, 'S':19, 'T':20, 'U':21, 'V':22, 'W':23, \
'X':24, 'Y':25, 'Z':26}
return letter_dic[letter]
#处理文件获得文本
with open("c:\\Users\\Administrator\\Desktop\\word.txt") as f:
word_str = f.read()
start = time()
#处理字符串
word_list = word_str.split(',')
#计算多少三角形词
count = 0
each_sum = 0
word_value = []
for each in word_list:
each = each.replace('"', '')
for i in each:
each_sum += get_letter_value(i)
word_value.append(each_sum)
each_sum = 0
#print(max(word_value)) 129160
#'''
triangle = creat_triangle_numlist(1000)
result = []
for each in word_value:
if each in triangle:
result.append(each)
count += 1
else:
continue
end = time()
print(count)
print("用时%4f秒" % (end-start))
|
|