This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original post Project Euler 42 - Finding triangle numbers Project Euler 42 - Finding triangle numbers
This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original post Project Euler 42 - Finding triangle numbers
This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original post Project Euler 42 - Finding triangle numbers
This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original post.Project Euler 42 - Finding triangle numbers
This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original post.
This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original postProject Euler 42 - Finding triangle numbers
Project Euler 42 - finding triangle number V2
This is my revised solution to Problem 42 from Project Euler, based on suggestions in this original post.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
using System.Diagnostics;
namespace ProjectEuler
{
class p42trianglenumber
{
// p42. tn = 1⁄2n(n+1)
// A=1, B=2, etc. case insensitive.
public static void NotMain()
{
var sw = new Stopwatch();
sw.Start();
int numberTriangleWords = 0;
string[] words = ReturnStringArray("p042_words.txt");
int[] triangleNumbers = BuildTriangleNumber();
foreach (string word in words)
{
var score = GetScore(word);
if (triangleNumbers.Contains(score))
{
numberTriangleWords++;
}
}
sw.Stop();
Console.WriteLine(numberTriangleWords + Environment.NewLine + sw.ElapsedMilliseconds.ToString() + "ms");
Console.ReadLine();
}
private static string[] ReturnStringArray(string fileLocation)
{
StreamReader sr = new StreamReader(fileLocation);
string[] words = sr.ReadLine().Split(',');
return words;
}
private static bool IsWordTriangleNumber(int wordVal, int[] triangleNumbers)
{
return (triangleNumbers.Contains(wordVal));
}
private static int[] BuildTriangleNumber()
{
int triangleNumberValue = 0;
int[] triangleNumbers = new int[50];
for (int i = 0; i < 50; i++)
{
if (i == 0)
triangleNumbers[i] = triangleNumberValue;
else
{
triangleNumberValue += i;
triangleNumbers[i] = triangleNumberValue;
}
}
return triangleNumbers;
}
private static int GetScore(string word)
{
var total = 0;
foreach (var letter in word)
{
total += GetScore(letter);
}
return total;
}
private static int GetScore(char letter)
{
var start = char.IsLower(letter) ? 'a' : 'A';
var score = (int)letter - (int)start + 1;
if (score < 0 || score > 26) return 0;
return score;
}
}
}