项目欧拉#8 - 我做错了什么? (C ++)

时间:2015-12-13 07:21:04

标签: c++

我一直试图解决这个问题一段时间了。下面的代码适用于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;

0 个答案:

没有答案