阵列越界欧拉 52

本文关键字:越界 阵列 | 更新日期: 2023-09-27 18:30:31

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

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

阵列越界欧拉 52

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

例如,如果

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

备注:您无需将字符串转换为字符数组即可访问字符,您可以访问字符串的字符,就像它是字符数组一样。

此外,创建字符串

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