using System.Diagnostics;
using System.Collections.Generic;
static Random R = new Random();
public static void Main(string[] args)
var testSuite = GenerateTests(10);
Benchmark(Diego, testSuite);
Benchmark(Fran, testSuite);
static int Diego(string strTest)
return 477 - strTest.Select(c => (int)c).Sum();
static int Fran(string numStr)
foreach(char c in numStr){
delegate int DlgTest(string s);
private static void Benchmark(DlgTest func, List<string> testSuite)
Stopwatch sw = Stopwatch.StartNew();
foreach (var str in testSuite)
Console.WriteLine((sw.ElapsedTicks).ToString());
static List<string> GenerateTests(int nTests)
var RetVal = new List<string>();
while (RetVal.Count < nTests)
RetVal.Add(GenerateTest());
static string GenerateTest()
var sb = new StringBuilder();
var auxStr = "0123456789";
for (var i = 1; i <= 9; i++)
var rnd = GenerateRandom(auxStr.Length - 1);
auxStr = auxStr.Remove(rnd, 1);
static int GenerateRandom(int max)