Last active
August 29, 2015 14:16
-
-
Save monkieboy/77a59568e181bd594417 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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())); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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?