我一直试图解决这个问题一段时间了。下面的代码适用于4位数字(它与它们给出的答案相匹配),它甚至适用于5个连续数字(这是之前要求的问题),但它似乎不适用于13个连续数字。
有人能告诉我我做错了什么吗?
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
int Char_To_String(char);
int main()
{
/*****************************************************/
/*********** PROJECT EULER: PROBLEM #8 ***************/
/*****************************************************/
fstream file("grid.txt", ios::in); // open file for reading
if(!file)
{
cout << "FILE NOT OPENED!";
return 0;
}
int row = 20;
int column = 50;
int num;
char arr[row][column];
int intarr[row][column];
for(int i = 0; i<row; i++)
{
for(int j = 0; j<column; j++)
{
file >> arr[i][j];
intarr[i][j] = Char_To_String(arr[i][j]);
}
}
long long prod = 1;
long long int maxProd = 1;
for(int i = 0; i<row; i++)
{
for(int j = 0; j<column; j++)
{
if(j<=column-13)
{
int temp = j;
for(int n = 1; n<=13; n++)
{
prod *= intarr[i][temp];
temp++;
}
if(prod > maxProd)
maxProd = prod;
prod = 1;
}
}
}
cout << "maxProd = " << fixed << maxProd << endl;