-
Notifications
You must be signed in to change notification settings - Fork 0
/
problem8.cpp
93 lines (72 loc) · 2.44 KB
/
problem8.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//
// main.cpp
// problem8
//
// Created by Franklin Nkokam Ngongang on 11/29/17.
// Copyright © 2017 Franklin Nkokam Ngongang. All rights reserved.
//
#include <iostream> // std::cin, std::cout
#include <fstream> // std::ifstream
#include <math.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
using namespace std;
const long MAX = 1000;
const long NMULT = 13;
int main(int argc, const char * argv[]) {
// insert code here...
long prevmult,mult,maxmult,lmax,i,k,j;
string line ;
ifstream myfile;
maxmult = 1 ; prevmult = 1; mult = 1;
myfile.open ("stream.txt",ios::in);
int numb[1000];
lmax = 50 ;//Assmuming it will be 50
if (myfile.is_open())
{
k=0;//We start by extracting the file contents to an array of 1000 integers
while ( getline (myfile,line) )
{
//cout << line << '\n';
lmax = line.size();
for(i=0;i<lmax;i++){
numb[k] = (int)((char)line[i] - (char)48);
//printf( "%d", numb[k]) ;
k++;
}
//cout << "\n" ;
}
prevmult=1; maxmult=1; mult=1;
i=0;j=0;
while(i<MAX){
for(k=i;k<(i+NMULT);k++){
if(numb[k] <= 0){//If the current number to multiply is 0 then skip to the next one
mult = 1; j=-1; continue ;
}else{
mult = (mult * numb[k]);
if( mult > maxmult ){
maxmult = mult ;
}else{
prevmult = mult ;
}
if(j==(NMULT)){//we have done 13 multiples already so far
if( numb[k - (j-1)] != 0 ){
mult = mult / (numb[k - (j-1)]) ;
}
j=-1;
}
}
j++;
}
i++;
}
cout << "\n maximum multiplication "<<maxmult <<" lmax "<< lmax << "\n";
myfile.close();
}else{
cout << "Unable to open file\n";
system("pwd");
}
//cout << maxmult ;
return 0;
}