我正在尝试寻找多种方法来解决 Project Euler 的问题 #13。我已经用两种不同的方式解决了它,但是这次我要做的是让我的解决方案从包含所有数字的文本文件中读取,然后从那里对其进行转换并将最远的列号添加到正确的。我还想以某种方式解决这个问题,如果我们要向列表中添加新数字,列表可以包含任意数量的行或列,因此它的长度不是预定义的(非数组?我不确定是否锯齿状数组将在此处正确应用,因为它无法预定义)。
到目前为止,我有:
static void Main(string[] args)
{
List<int> sum = new List<int>();
string bigIntFile = @"C:\Users\Justin\Desktop\BigNumbers.txt";
string result;
StreamReader streamReader = new StreamReader(bigIntFile);
while ((result = streamReader.ReadLine()) != null)
{
for (int i = 0; i < result.Length; i++)
{
int converted = Convert.ToInt32(result.Substring(i, 1));
sum.Add(converted);
}
}
}
它读取文件并将每个字符从字符串转换为单个 int。我试图思考如何将该 int 存储在一个类似于 2D 数组的集合中,但该集合需要是通用的并存储任何 # 行/列。除了基本列表之外,关于如何存储这些数字的任何想法?有没有办法可以设置一个列表,使它就像一个未预定义的二维数组?提前致谢!
更新:我也不想使用“BigInteger”。这有点太容易阅读该行,将字符串转换为 BigInt,将其存储在 BigInt 列表中,然后从那里总结所有整数。