项目欧拉问题8



有人能告诉我我做错了什么吗?结果应该是可以的,但它不符合。

在1000位数字中找出乘积最大的13位相邻数字。这个产品的价值是多少?

Console.WriteLine("This prouct calculates the prouct of thirteen adjacent digits in the 1000-digit number!");
string numbers = "73167176531330624919225119674426574742355349194934"+
"96983520312774506326239578318016984801869478851843"+
"85861560789112949495459501737958331952853208805511"+
"12540698747158523863050715693290963295227443043557"+ 
"66896648950445244523161731856403098711121722383113"+ 
"62229893423380308135336276614282806444486645238749"+
"30358907296290491560440772390713810515859307960866"+ 
"70172427121883998797908792274921901699720888093776"+ 
"65727333001053367881220235421809751254540594752243"+ 
"52584907711670556013604839586446706324415722155397"+ 
"53697817977846174064955149290862569321978468622482"+ 
"83972241375657056057490261407972968652414535100474"+ 
"82166370484403199890008895243450658541227588666881"+ 
"16427171479924442928230863465674813919123162824586"+ 
"17866458359124566529476545682848912883142607690042"+ 
"24219022671055626321111109370544217506941658960408"+ 
"07198403850962455444362981230987879927244284909188"+ 
"84580156166097919133875499200524063689912560717606"+ 
"05886116467109405077541002256983155200055935729725"+ 
"71636269561882670428252483600823257530420752963450";
char n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13;
int c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13;

long tempProd=0;

for (int i= 0;i<=numbers.Length-13; i++)
{       
n1 = numbers[i];
c1 = (int)Char.GetNumericValue(n1);
n2 = numbers[i + 1];
c2 = (int)Char.GetNumericValue(n2);
n3 = numbers[i + 2];
c3 = (int)Char.GetNumericValue(n3);
n4 = numbers[i + 3];
c4 = (int)Char.GetNumericValue(n4);
n5 = numbers[i + 4];
c5 = (int)Char.GetNumericValue(n5);
n6 = numbers[i + 5];
c6 = (int)Char.GetNumericValue(n6);
n7 = numbers[i + 6];
c7 = (int)Char.GetNumericValue(n7);
n8 = numbers[i + 7];
c8 = (int)Char.GetNumericValue(n8);
n9 = numbers[i + 8];
c9 = (int)Char.GetNumericValue(n9);
n10 = numbers[i + 9];
c10 = (int)Char.GetNumericValue(n10);
n11 = numbers[i + 10];
c11 = (int)Char.GetNumericValue(n11);
n12 = numbers[i + 11];
c12 = (int)Char.GetNumericValue(n12);
n13 = numbers[i + 12];
c13 = (int)Char.GetNumericValue(n13);
long prod = c1 * c2 * c3 * c4 * c5 * c6 * c7 * c8 * c9 * c10 * c11 * c12 * c13;
if (prod > tempProd)
{
tempProd = prod;
}
}
Console.WriteLine("The result we are looking for is: " + tempProd);

您正在使用带有long的整型值!将c1,c2改为长值

相关内容

  • 没有找到相关文章

最新更新