2014-11-16 9 views
-1

나는 오일러에서이 문제를 해결하려고 노력해 왔습니다. 정수를 문자열 배열로 변환하고 싶습니다. 이 후에 각 문자열을 문자 배열로 변환하고 싶습니다. 여기에서 코드가 오류를 발생시키기 시작합니다. 당신이 길이 i 배열을 만들 때범위를 벗어난 배열 오일러 52

namespace Problem_52_Euler 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      for (uint i = 1; i < 1000000000; i++) 
      { 
       string[] xint = new string[i];      
       char[] xArray = xint[i].ToCharArray();  // This line is going out of bounds    
       char[] yArray = xint[i + 1].ToCharArray(); 

       for (uint j = 0; j < xArray.Length; j++) 
       { 
        char xInteger = xArray[j]; 
        for (uint k = 0; k < yArray.Length; k++) 
        { 
         char yInteger = yArray[k]; 
         if (xArray[0] == yArray[k] && xArray[0 + j] == yArray[k]) 
         { 
          Console.WriteLine(" " + i); 
         } 
        } 
       } 
      } 
     } 
    } 
} 
+0

for (uint i = 0; i <1000000000-1; i ++) {'그리고'xint [i]'에 값이 할당되는 곳은 무엇입니까? 문자열의 기본값은 'null'입니다. – ja72

답변

2

, 그것은 0에서 i-1에 인덱스를해야합니다.

i이 예를 들어 4 일 경우 new string[i]은 인덱스가 0, 1, 2 및 3 인 배열을 생성합니다. 인덱스 4의 항목에는 액세스 할 수 없으므로 액세스 할 수 없습니다.

참고 : 문자에 액세스하려면 문자열을 문자 배열로 변환 할 필요가 없습니다. 마치 문자 배열 인 것처럼 문자열의 문자에 액세스 할 수 있습니다.

또한 문자열 배열을 만들면 문자열이 만들어지지 않고 문자열을 참조 할 수있는 공간 만 생성됩니다. 배열을 만든 다음 문자열을 가져 오려고하면 null 참조가 생깁니다.

+0

오케이, 정말 고마워! :) –