Skip to content

Instantly share code, notes, and snippets.

@monkieboy
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monkieboy/77a59568e181bd594417 to your computer and use it in GitHub Desktop.
Save monkieboy/77a59568e181bd594417 to your computer and use it in GitHub Desktop.
// F# Solution (ugly):
let mapArray s =
([|1.0..500.0|]
|> Array.map(fun p -> p/2.0*(p+1.0)))
|> Array.filter (fun e->e=(s |> Array.sum))
|> Array.length
let problem42() =
let client = new System.Net.WebClient()
client.DownloadString("https://projecteuler.net/project/resources/p042_words.txt").ToUpper().Replace("\"", "").Split([|','|])
|> Array.map (fun c -> c.ToCharArray()
|> Array.map (fun l -> (float)l-64.0))
|> Array.map (fun a->mapArray a) |> Array.sum
// C# Solution:
File.ReadAllText("w")
.ToUpper()
.Replace("\"", "")
.Split(',')
.Select(x => x.ToCharArray().Select(l => l - 64))
.Count(c => Enumerable.Range(1, 500)
.Select(i => i/2F*(i + 1))
.Contains(c.Sum()));
@monkieboy
Copy link
Author

Coded triangle numbers
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.

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment