-1

我一直试图在欧拉上解决这个问题。我想将整数转换为字符串数组。在此之后,我想将每个字符串转换为一个字符数组,这就是我的代码开始出错的地方。

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);
                        }
                    }
                }
            }
        }
    }
}
4

1 回答 1

2

当您创建一个长度为 的数组时i,它将具有从0到的索引i-1

i例如,如果是 4,new string[i]将生成索引为 0、1、2 和 3 的数组。您无法访问索引 4 处的项目,因为它不存在。

注意:您不需要将字符串转换为字符数组来访问字符,您可以像访问字符数组一样访问字符串的字符。

此外,创建字符串数组不会创建任何字符串,只会创建对字符串的引用的空间。如果您只是创建数组然后尝试从中获取一个字符串,您将获得一个空引用。

于 2014-11-16T15:02:50.997 回答