Project Euler 24
using System; using System.Collections.Generic; using System.Linq; class PE024 { static long Fact(long n) { if (n == 0) return 1; else return n * Fact(n-1); } static string Calc(long n) { var ans = new List<int>(); var digits = Enumerable.Range(0, 10).ToList(); while (digits.Count > 0) { long cnt = Fact(digits.Count - 1); int p = (int)(n/cnt); ans.Add(digits[p]); digits.RemoveAt(p); n %= cnt; } return string.Join("", ans); } static void Main() { Console.WriteLine(Calc(1000000-1)); } }