title: c#: Project Euler 8. Have some troubles in program
body: <p>I'm writing a program to solve problem 8 in project Euler, which finds the thirteen adjacent digits in the 1000-digit number that have the greatest product. Firstly, i determine that the 1000-digit number is a string. Then i create a split method that        breaks up this string into smaller chars, and converts it to int number. (i use ulong type instead of int)</p>
  
  <pre><code>static ulong split(char input)
          {
              ulong number = ulong.Parse(Convert.ToString(input));
              return number;
          }
  </code></pre>
  
  <p>then i create a method that has ability to check whether what is the biggest product. convert it into int type, find the product of thirteen adjacent digits.</p>
  
  <pre><code>static ulong check(string string1)
          {
              ulong product = 1;
              ulong max = 0;
              ulong[] array = new ulong[50];
  
              char[] h1 = string1.ToCharArray();
              for (int i = 0; i &lt; string1.Length; i++)
                 array[i] = split(h1[i]);
              for (int i = 0; i &lt; array.Length - 12; i++)
              {
                  for (int j = 0; j &lt; 13; j++)
                  {
                      product *= array[i + j]
                      if (product &gt; max)
                          max = product;
                  }
                  product = 1;
              }
              return max;
  </code></pre>
  
  <p>In the main method. i write some code to input the 1000-digit number and write the answer.</p>
  
  <pre><code> string input =               @"73167176531330624919225119674426574742355349194934
                               96983520312774506326239578318016984801869478851843
                               85861560789112949495459501737958331952853208805511
                               12540698747158523863050715693290963295227443043557
                               66896648950445244523161731856403098711121722383113
                               62229893423380308135336276614282806444486645238749
                               30358907296290491560440772390713810515859307960866
                               70172427121883998797908792274921901699720888093776
                               65727333001053367881220235421809751254540594752243
                               52584907711670556013604839586446706324415722155397
                               53697817977846174064955149290862569321978468622482
                               83972241375657056057490261407972968652414535100474
                               82166370484403199890008895243450658541227588666881
                               16427171479924442928230863465674813919123162824586
                               17866458359124566529476545682848912883142607690042
                               24219022671055626321111109370544217506941658960408
                               07198403850962455444362981230987879927244284909188
                               84580156166097919133875499200524063689912560717606
                               05886116467109405077541002256983155200055935729725
                               71636269561882670428252483600823257530420752963450";
              input = input.Replace("  ", "");
              input = input.Replace("/r/n", "");
              Console.Write(check(input));
              Console.ReadKey();
  </code></pre>
  
  <p>But the program has trouble in the split method. can you explain for me, please ? :(
  here is all my program.</p>
  
  <pre><code>string input = @"73167176531330624919225119674426574742355349194934
                               96983520312774506326239578318016984801869478851843
                               85861560789112949495459501737958331952853208805511
                               12540698747158523863050715693290963295227443043557
                               66896648950445244523161731856403098711121722383113
                               62229893423380308135336276614282806444486645238749
                               30358907296290491560440772390713810515859307960866
                               70172427121883998797908792274921901699720888093776
                               65727333001053367881220235421809751254540594752243
                               52584907711670556013604839586446706324415722155397
                               53697817977846174064955149290862569321978468622482
                               83972241375657056057490261407972968652414535100474
                               82166370484403199890008895243450658541227588666881
                               16427171479924442928230863465674813919123162824586
                               17866458359124566529476545682848912883142607690042
                               24219022671055626321111109370544217506941658960408
                               07198403850962455444362981230987879927244284909188
                               84580156166097919133875499200524063689912560717606
                               05886116467109405077541002256983155200055935729725
                               71636269561882670428252483600823257530420752963450";
              input = input.Replace("  ", "");
              input = input.Replace("/r/n", "");
              Console.Write(check(input));
              Console.ReadKey();
          }
          static ulong split(char input)
          {
              ulong number = ulong.Parse(Convert.ToString(input));
              return number;
          }
          static ulong check(string string1)
          {
              ulong product = 1;
              ulong max = 0;
              ulong[] array = new ulong[50];
  
              char[] h1 = string1.ToCharArray();
              for (int i = 0; i &lt; string1.Length; i++)
                 array[i] = split(h1[i]);
              Console.WriteLine();
              for (int i = 0; i &lt; array.Length - 12; i++)
              {
                  for (int j = 0; j &lt; 13; j++)
                  {
                      product *= array[i + j];
  
                      if (product &gt; max)
                      {
                          max = product;
                          Console.Write(array[i + j] + "   ");
                      }
                  }
                  product = 1;
              }
              return max;
          }
  </code></pre>