1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WordNumbers { class Program { static string[] sOnes = { "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; static string[] sTens = { "", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; static string[] sTeens = { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; static int[] sOnesLengths = (from x in sOnes select x.Length).ToArray(); static int[] sTensLengths = (from x in sTens select x.Length).ToArray(); static int[] sTeensLengths = (from x in sTeens select x.Length).ToArray(); static string Wordify(long n) { if (n < 10) return sOnes[n]; else if (n < 20) return sTeens[n - 10]; else if (n < 100) return sTens[n / 10] + Wordify(n % 10); else if (n < 1000) return Wordify(n / 100) + "hundred" + Wordify(n % 100); else if (n < 1000000) return Wordify(n / 1000) + "thousand" + Wordify(n % 1000); else if (n < 1000000000) return Wordify(n / 1000000) + "million" + Wordify(n % 1000000); throw new ArgumentException(); } static int WordiLength(long n) { if (n < 10) return sOnesLengths[n]; else if (n < 20) return sTeensLengths[n - 10]; else if (n < 100) return sTensLengths[n / 10] + WordiLength(n % 10); else if (n < 1000) return WordiLength(n / 100) + 7 + WordiLength(n % 100); else if (n < 1000000) return WordiLength(n / 1000) + 8 + WordiLength(n % 1000); else if (n < 1000000000) return WordiLength(n / 1000000) + 7 + WordiLength(n % 1000000); throw new ArgumentException(); } static void Main(string[] args) { long sumNum = 0; long sumLen = 0; long target = 51000000000; long i = 1; var start = DateTime.Now; for (; i < 999999999; i++) { long newLength = sumLen + WordiLength(i); if (newLength >= target) break; sumNum += i; sumLen = newLength; } var spent = DateTime.Now - start; Console.WriteLine(spent.ToString()); Console.WriteLine(sumNum); Console.WriteLine(Wordify(i)[Convert.ToInt32(target - sumLen - 1)]); } } } |
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0OwoKbmFtZXNwYWNlIFdvcmROdW1iZXJzCnsKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKICAgICAgICBzdGF0aWMgc3RyaW5nW10gc09uZXMgPQogICAgICAgIHsgIiIsICJvbmUiLCAidHdvIiwgInRocmVlIiwgImZvdXIiLCAiZml2ZSIsICJzaXgiLCAic2V2ZW4iLCAiZWlnaHQiLCAibmluZSIgfTsKICAgICAgICBzdGF0aWMgc3RyaW5nW10gc1RlbnMgPQogICAgICAgIHsgIiIsICJ0ZW4iLCAidHdlbnR5IiwgInRoaXJ0eSIsICJmb3J0eSIsICJmaWZ0eSIsICJzaXh0eSIsICJzZXZlbnR5IiwgImVpZ2h0eSIsICJuaW5ldHkiIH07CiAgICAgICAgc3RhdGljIHN0cmluZ1tdIHNUZWVucyA9CiAgICAgICAgeyAidGVuIiwgImVsZXZlbiIsICJ0d2VsdmUiLCAidGhpcnRlZW4iLCAiZm91cnRlZW4iLCAiZmlmdGVlbiIsICJzaXh0ZWVuIiwgInNldmVudGVlbiIsICJlaWdodGVlbiIsICJuaW5ldGVlbiIgfTsKCiAgICAgICAgc3RhdGljIGludFtdIHNPbmVzTGVuZ3RocyA9IChmcm9tIHggaW4gc09uZXMgc2VsZWN0IHguTGVuZ3RoKS5Ub0FycmF5KCk7CiAgICAgICAgc3RhdGljIGludFtdIHNUZW5zTGVuZ3RocyA9IChmcm9tIHggaW4gc1RlbnMgc2VsZWN0IHguTGVuZ3RoKS5Ub0FycmF5KCk7CiAgICAgICAgc3RhdGljIGludFtdIHNUZWVuc0xlbmd0aHMgPSAoZnJvbSB4IGluIHNUZWVucyBzZWxlY3QgeC5MZW5ndGgpLlRvQXJyYXkoKTsKCiAgICAgICAgc3RhdGljIHN0cmluZyBXb3JkaWZ5KGxvbmcgbikKICAgICAgICB7CiAgICAgICAgICAgIGlmIChuIDwgMTApIHJldHVybiBzT25lc1tuXTsKICAgICAgICAgICAgZWxzZSBpZiAobiA8IDIwKSByZXR1cm4gc1RlZW5zW24gLSAxMF07CiAgICAgICAgICAgIGVsc2UgaWYgKG4gPCAxMDApIHJldHVybiBzVGVuc1tuIC8gMTBdICsgV29yZGlmeShuICUgMTApOwogICAgICAgICAgICBlbHNlIGlmIChuIDwgMTAwMCkgcmV0dXJuIFdvcmRpZnkobiAvIDEwMCkgKyAiaHVuZHJlZCIgKyBXb3JkaWZ5KG4gJSAxMDApOwogICAgICAgICAgICBlbHNlIGlmIChuIDwgMTAwMDAwMCkgcmV0dXJuIFdvcmRpZnkobiAvIDEwMDApICsgInRob3VzYW5kIiArIFdvcmRpZnkobiAlIDEwMDApOwogICAgICAgICAgICBlbHNlIGlmIChuIDwgMTAwMDAwMDAwMCkgcmV0dXJuIFdvcmRpZnkobiAvIDEwMDAwMDApICsgIm1pbGxpb24iICsgV29yZGlmeShuICUgMTAwMDAwMCk7CgogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oKTsKICAgICAgICB9CgogICAgICAgIHN0YXRpYyBpbnQgV29yZGlMZW5ndGgobG9uZyBuKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKG4gPCAxMCkgcmV0dXJuIHNPbmVzTGVuZ3Roc1tuXTsKICAgICAgICAgICAgZWxzZSBpZiAobiA8IDIwKSByZXR1cm4gc1RlZW5zTGVuZ3Roc1tuIC0gMTBdOwogICAgICAgICAgICBlbHNlIGlmIChuIDwgMTAwKSByZXR1cm4gc1RlbnNMZW5ndGhzW24gLyAxMF0gKyBXb3JkaUxlbmd0aChuICUgMTApOwogICAgICAgICAgICBlbHNlIGlmIChuIDwgMTAwMCkgcmV0dXJuIFdvcmRpTGVuZ3RoKG4gLyAxMDApICsgNyArIFdvcmRpTGVuZ3RoKG4gJSAxMDApOwogICAgICAgICAgICBlbHNlIGlmIChuIDwgMTAwMDAwMCkgcmV0dXJuIFdvcmRpTGVuZ3RoKG4gLyAxMDAwKSArIDggKyBXb3JkaUxlbmd0aChuICUgMTAwMCk7CiAgICAgICAgICAgIGVsc2UgaWYgKG4gPCAxMDAwMDAwMDAwKSByZXR1cm4gV29yZGlMZW5ndGgobiAvIDEwMDAwMDApICsgNyArIFdvcmRpTGVuZ3RoKG4gJSAxMDAwMDAwKTsKCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigpOwogICAgICAgIH0KCiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgbG9uZyBzdW1OdW0gPSAwOwogICAgICAgICAgICBsb25nIHN1bUxlbiA9IDA7CgogICAgICAgICAgICBsb25nIHRhcmdldCA9IDUxMDAwMDAwMDAwOwogICAgICAgICAgICBsb25nIGkgPSAxOwoKICAgICAgICAgICAgdmFyIHN0YXJ0ID0gRGF0ZVRpbWUuTm93OwoKICAgICAgICAgICAgZm9yICg7IGkgPCA5OTk5OTk5OTk7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbG9uZyBuZXdMZW5ndGggPSBzdW1MZW4gKyBXb3JkaUxlbmd0aChpKTsKICAgICAgICAgICAgICAgIGlmIChuZXdMZW5ndGggPj0gdGFyZ2V0KQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIHN1bU51bSArPSBpOwogICAgICAgICAgICAgICAgc3VtTGVuID0gbmV3TGVuZ3RoOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc3BlbnQgPSBEYXRlVGltZS5Ob3cgLSBzdGFydDsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3BlbnQuVG9TdHJpbmcoKSk7CgogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdW1OdW0pOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShXb3JkaWZ5KGkpW0NvbnZlcnQuVG9JbnQzMih0YXJnZXQgLSBzdW1MZW4gLSAxKV0pOwogICAgICAgIH0KICAgIH0KfQoK
-
upload with new input
-
result: Runtime error time: 5.99s memory: 40680 kB signal: 9 (SIGKILL)


