注意:
- 上下左右八个方向,为避免重复,只需操作其中四个即可
- 四个方向对应的方向数组
#include<iostream>
using namespace std;
int drcx[4]={0,1,1,1};
int drcy[4]={1,1,0,-1};
int num[35][35],ans;
int main(){
for(int i=5;i<25;i++){
for(int j=5;j<25;j++){
cin>>num[i][j];
}
}
for(int i=5;i<25;i++){
for(int j=5;j<25;j++){
for(int k=0;k<4;k++){ //处理方向
int t=num[i][j];
for(int l=1;l<4;l++){
int x=i+drcx[k]*l; //移动下标
int y=i+drcy[k]*l;
t*=num[x][y];
}
ans=max(ans,t);
}
}
}
cout<<ans<<endl;
return 0;
}