阵列越界欧拉 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);
}
}
}
}
}
}
}
当你创建一个长度为 i
的数组时,它将具有从 0
到 i-1
的索引。
i
是 4,new string[i]
将生成一个索引为 0、1、2 和 3 的数组。无法访问索引 4 处的项,因为它不存在。
备注:您无需将字符串转换为字符数组即可访问字符,您可以访问字符串的字符,就像它是字符数组一样。
此外,创建字符串数组不会创建任何字符串,只会创建对字符串的引用空间。如果您只是创建数组,然后尝试从中获取字符串,您将获得一个空引用。