Я пытаюсь решить Проект Задача Эйлера 8 . Я все еще новичок в C#, поэтому мне нравится использовать простые задачи и функции, поэтому код довольно длинный. Если я пытаюсь найти четыре соседние цифры, которые дают самые высокие продукты, он работает, но когда я пытаюсь найти 13, это не работает. Строка 10 - это длинное число. 10 означает длинную, а 2 означает короткую.
//Problem 8
string lO =
string sO = "";
int length = lO.Length;
int uno = 0;
int dos = 0;
int tre = 0;
int fou = 0;
int fiv = 0;
int six = 0;
int sev = 0;
int eig = 0;
int nin = 0;
int ten = 0;
int ele = 0;
int twe = 0;
int thi = 0;
long big = 0;
long total = 0;
int sub = 0;
for (int i = 0; i < length; i++)
{
sub = length - i;
if (sub > 13)
{
sO = lO.Substring(i, 13);
}
else
{
sO = lO.Substring(i, sub);
}
if (sO.Length >= 13)
{
uno = Convert.ToInt32(sO.Substring(0, 1));
dos = Convert.ToInt32(sO.Substring(1, 1));
tre = Convert.ToInt32(sO.Substring(2, 1));
fou = Convert.ToInt32(sO.Substring(3, 1));
fiv = Convert.ToInt32(sO.Substring(4, 1));
six = Convert.ToInt32(sO.Substring(5, 1));
sev = Convert.ToInt32(sO.Substring(6, 1));
eig = Convert.ToInt32(sO.Substring(7, 1));
nin = Convert.ToInt32(sO.Substring(8, 1));
ten = Convert.ToInt32(sO.Substring(9, 1));
ele = Convert.ToInt32(sO.Substring(10, 1));
twe = Convert.ToInt32(sO.Substring(11, 1));
thi = Convert.ToInt32(sO.Substring(12));
}
total = uno * dos * tre * fou * fiv * six * sev * eig * nin * ten * ele * twe * thi;
//Console.WriteLine("Total: " + total);
if (total > big)
{
big = total;
Console.WriteLine("New biggest is " + big);
}
}