原题:
/*
* 原题:
* Find the greatest product of five consecutive digits in the 1000-digit number.
* 73167176531330624919225119674426574742355349194934
* 96983520312774506326239578318016984801869478851843
* 85861560789112949495459501737958331952853208805511
* 12540698747158523863050715693290963295227443043557
* 66896648950445244523161731856403098711121722383113
* 62229893423380308135336276614282806444486645238749
* 30358907296290491560440772390713810515859307960866
* 70172427121883998797908792274921901699720888093776
* 65727333001053367881220235421809751254540594752243
* 52584907711670556013604839586446706324415722155397
* 53697817977846174064955149290862569321978468622482
* 83972241375657056057490261407972968652414535100474
* 82166370484403199890008895243450658541227588666881
* 16427171479924442928230863465674813919123162824586
* 17866458359124566529476545682848912883142607690042
* 24219022671055626321111109370544217506941658960408
* 07198403850962455444362981230987879927244284909188
* 84580156166097919133875499200524063689912560717606
* 05886116467109405077541002256983155200055935729725
* 71636269561882670428252483600823257530420752963450
*/
翻译:
/*
* 翻译:
* 寻找到连着5个数字的乘积最大的数。
*/
解题思路:
2 /// 解题思路:
3 /// 没啥很特别的思路,唯一的思路也就是巍彼同学说的,以0作为分割,分割成几个不同长度的字符串。然后求解。
4 /// </summary>
代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
2
3 class FiveConsecutiveDigitsInThe1000_DigitNumber
4 {
5 internal static int GetResult()
6 {
7 //char ch = '1';
8 //Console.WriteLine((ch - 48).ToString());
9
10 string strNum = "73167176531330624919225119674426574742355349194934" +
11 "96983520312774506326239578318016984801869478851843" +
12 "85861560789112949495459501737958331952853208805511" +
13 "12540698747158523863050715693290963295227443043557" +
14 "66896648950445244523161731856403098711121722383113" +
15 "62229893423380308135336276614282806444486645238749" +
16 "30358907296290491560440772390713810515859307960866" +
17 "70172427121883998797908792274921901699720888093776" +
18 "65727333001053367881220235421809751254540594752243" +
19 "52584907711670556013604839586446706324415722155397" +
20 "53697817977846174064955149290862569321978468622482" +
21 "83972241375657056057490261407972968652414535100474" +
22 "82166370484403199890008895243450658541227588666881" +
23 "16427171479924442928230863465674813919123162824586" +
24 "17866458359124566529476545682848912883142607690042" +
25 "24219022671055626321111109370544217506941658960408" +
26 "07198403850962455444362981230987879927244284909188" +
27 "84580156166097919133875499200524063689912560717606" +
28 "05886116467109405077541002256983155200055935729725" +
29 "71636269561882670428252483600823257530420752963450"; // 给定的数字列
30
31 string[] Strs = strNum.Split('0');
32 int Biggest = 0;
33 int product = 0;
34 for (int j = 0; j < Strs.Length; j++)
35 {
36 string strtmp = Strs[j];
37 for (int i = 0; i <= strtmp.Length - 5; i++)
38 {
39 product = (strtmp[i] - 48) * (strtmp[i + 1] - 48) * (strtmp[i + 2] - 48) * (strtmp[i + 3] - 48) * (strtmp[i + 4] - 48);
40 if (product > Biggest)
41 Biggest = product;
42 }
43 }
44 Console.WriteLine(Biggest.ToString());
45 }
46 }