这是针对Project Euler,问题8.
我试图foreach通过数组,每次跳过最后一个数字并拉出数组中的下13个相邻数字.
我的代码:
for(int x = 0; x < 987; x++)
{
foreach(int number in numbers.Take(13).Skip(x))
{
hold = hold * number;
adjacent[index] = number;
index++;
}
if (hold > product)
{
product = hold;
}
Array.Clear(adjacent, 0, adjacent.Length);
index = 0;
hold = 1;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,每次通过数组枚举时,它会减去x的数量,从它通过列表的次数减去13,即13.
所以当x为5时,它只会通过数组8次.
如何在一次遍历13个数字的位置修复它?
Wic*_*ser 18
您的代码首先需要13个,然后跳过13个代码中的下一个x元素.相反,先跳过然后采取:
for (int x = 0; x < 987; x++)
{
foreach(int number in numbers.Skip(x).Take(13))
{
hold = hold * number;
adjacent[index] = number;
index++;
}
if (hold > product)
{
product = hold;
}
Array.Clear(adjacent, 0, adjacent.Length);
index = 0;
hold = 1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
561 次 |
| 最近记录: |