欧拉计划 (方向数组)

欧拉计划11题
原题:欧拉计划11题
思路:首先用到方向数组,也就是对各个方向连续的四个数进行计算。然后对整个二维数组枚举,依次每个数的各个方向,计算找到最大值。**答案:**70600674

#include <iostream>
using namespace std;

int num[30][30];

//方向数组 
//本来是需要枚举8个方向的,但是右下方向的连续乘积和后面某个数据的左上方向是相同的,故自诩枚举四个方向 
int dirx[4] = {-1, 0, 1, 1};
int diry[4] = {1, 1, 1, 0};

int main() {
	int ans = 0;
	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++) {  //i, j的双层循环:对数据进行枚举 
			for(int k = 0; k < 4; k++) { //对四个方向连续数进行计算 
				int temp = num[i][j];
				for(int l = 1; l < 4; l++) { //求四个数据乘积,需要往前走三步 
					int x = i + dirx[k] * l;
					int y = j + diry[k] * l;
					temp *= num[x][y];
				}
				ans = max(ans, temp);
			}
		}
	}
	cout << ans << endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值