这是zhxinc的欧拉计划记录页面。
立了个flag每天至少一道Project Euler题。
今天被这道题坑惨了!主要是没好好读题,题目给出的是一个1000位的数字,而不是一个20*50的矩阵,也就是说每一行之间也算是相邻的数字。(大概是做oi做多了的后遗症吧,不过这不是我不好好读题的借口,况且我也并没做多少oi题啊……)
还有一个坑点是要开long long,因为答案是会超出int的范围的(int的范围是 -2^31~2^31-1,或者说-2147483648到2147483647)。
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
| #include<iostream> #include<cstdio> #include<cstring> #include<stdio.h> using namespace std; char a[20][105]; int map[10005]; int main() { memset(map,0,sizeof map); for(int i=1;i<=20;i++) { cin>>a[i]; } for(int i=1;i<=20;i++) { for(int j=0;j<50;j++) { map[(i-1)*50+j+1]=a[i][j]-'0'; } }
long long ans=0;
for(int i=1;i<=1000;i++) { long long cur=1; for(int j=i;j<=i+12;j++) { cur*=map[j]; } ans=max(cur,ans); } printf("%lld",ans); return 0; }
|