zoukankan      html  css  js  c++  java
  • Problem 42

    Problem 42

    https://projecteuler.net/problem=42

    The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangle numbers are:

    1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

     三角数可由上述公式得出。

    By converting each letter in a word to a number corresponding to its alphabetical position and adding these values we form a word value. For example, the word value for SKY is 19 + 11 + 25 = 55 = t10. If the word value is a triangle number then we shall call the word a triangle word.

    讲单词中的字母转换为字母表中的位置(如:A=1),将它们相加。如果得到的数字是一个三教数,则这个单词为三角单词。

    Using words.txt (right click and 'Save Link/Target As...'), a 16K text file containing nearly two-thousand common English words, how many are triangle words?

    找找这两千多个英语常用词中有多少个三角单词?

    filename = 'p042_words.txt'
    with open(filename) as f:
        data = f.read()
    
    words = data.split(',')
    for i in range(len(words)):
        words[i] = words[i][1:-1]
    
    triangle_nums = [i * (i + 1) // 2 for i in range(1, 100)]
    triangle_words = []
    alphabet = [chr(i) for i in range(65, 65 + 26)]
    word_value = 0
    count = 0
    for word in words:
        for letter in word:
            word_value += alphabet.index(letter) + 1
        if word_value in triangle_nums:
            triangle_words.append(word)
            count += 1
            word_value = 0
        else:
            word_value = 0
    
    print(triangle_words)
    print(count)
    Resistance is Futile!
  • 相关阅读:
    学了axure的感受
    axure的功能
    PS的应用
    day15-1 模块
    day14-2 模块详解
    day14-1 模块定义,导入
    day13-1 Json & pickle 数据序列化
    day12-3 内置方法
    day12-2 内置方法
    day12-1 迭代器和生成器
  • 原文地址:https://www.cnblogs.com/noonjuan/p/11031205.html
Copyright © 2011-2022 走看看