Project Euler – Problem 17
2012-05-05 08:26
411 查看
If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.
If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?
NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of “and” when writing out numbers is in compliance with British usage.
绝大部分情况可以简单将对应位数字字母长度相加。需要特殊处理的部分有:11-19、超过100、整百、1000
If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?
NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of “and” when writing out numbers is in compliance with British usage.
绝大部分情况可以简单将对应位数字字母长度相加。需要特殊处理的部分有:11-19、超过100、整百、1000
static void Main(string[] args) { // null one two three four five six seven eight nine int[] one2nine = new int[]{0, 3, 3, 5, 4, 4, 3, 5, 5, 4}; // null null twenty thirty forty // fifty sixty seventy eighty ninety int[] tens = new int[] { 0, 0, 6, 6, 5, 5, 5, 7, 6, 6 }; // ten eleven twelve thirteen fourteen // fifteen sixteen seventeen eighteen nineteen int[] ten2nineteen = new int[] { 3, 6, 6, 8, 8, 7, 7, 9, 8, 8 }; int sum = 0; // 百位 for (int i = 0; i < 10; i++) { // 十位 for (int j = 0; j < 10; j++) { // 个位 for (int k = 0; k < 10; k++) { // 11-19 特殊处理 if (j != 1) sum += one2nine[i] + tens[j] + one2nine[k]; else sum += one2nine[i] + ten2nineteen[k]; // 大于100, + hundred and if (i > 0) sum += 10; // 整百, - and if (i > 0 && j + k == 0) sum -= 3; } } } sum += 11; // + one thousand Console.WriteLine(sum); }
相关文章推荐
- Project Euler: Problem 17 Number letter counts
- [Project Euler]加入欧拉 Problem 17
- [Project Euler] Problem 17
- Problem 17:Number letter counts
- 欧拉项目 Problem 17 of how many letters would be used?
- [Project Euler] Problem 48
- Project Euler:Problem 32 Pandigital products
- Fedora 17, Wireless network problem with Atheros AR5B97
- Project Euler 17
- Project Euler__problem 5
- Project Euler:Problem 16 Power digit sum
- Project Euler:Problem 22 Names scores
- Project Euler Problem 17 Number letter counts
- Project Euler :Problem 54 Poker hands
- Project Euler:Problem 61 Cyclical figurate numbers
- Project Euler:Problem 66 Diophantine equation
- Project Euler:Problem 76 Counting summations
- 【Project Euler】【Problem 7】10001st prime
- Project Euler:Problem 93 Arithmetic expressions
- [Project Euler]加入欧拉 Problem 11