先做个说明,里面所有的题都是我自己写的解题报告,由于我的能力有限,是个刚学java的小白,有很多不足的地方,还望各位大佬不奢赐教,谢谢!

Largest product in a grid

In the 20×20 grid below, four numbers along a diagonal line have been marked in red.

08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
                                          49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
                                          81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
                                          52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
                                          22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
                                          24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
                                          32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
                                          67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
                                          24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
                                          21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
                                          78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
                                          16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
                                          86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
                                          19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
                                          04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
                                          88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
                                          04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
                                          20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
                                          20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
                                          01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48

The product of these numbers is 26 × 63 × 78 × 14 = 1788696.

What is the greatest product of four adjacent numbers in the same direction (up, down, left, right, or diagonally) in the 20×20 grid?

1.问题描述

在这个20×20的矩阵里,4个对角上标红色的数,26,63,78,14的乘积为1788696.

那么在这个矩阵中,4个临近的数(包括竖直,水平,和对角方向)的最大乘积是多少?

答案为:70600674

2.代码java实现

public class pro_11 {
public static void main(String[] args)
{ int max=0;
int i,j,sum1,sum2,sum3,sum4;//i和j是定义的变量,sum1是横向的计算,sum2是纵向的计算

//sum3是右下向的计算,sum4是左下向的计算,为什么我不算左上方和右下方?因为和右下向,左下向重合了
int a[][]=
{ {8, 2, 22,97,38,15, 0,40, 0,75, 4, 5, 7,78,52,12,50,77,91,8},
{49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48, 4,56,62,0},
{81,49,31,73,55,79,14,29,93,71,40,67,53,88,30, 3,49,13,36,65},
{52,70,95,23, 4,60,11,42,69,24,68,56, 1,32,56,71,37, 2,36,91},
{22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80},
{24,47,32,60,99, 3,45, 2,44,75,33,53,78,36,84,20,35,17,12,50},
{32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70},
{67,26,20,68, 2,62,12,20,95,63,94,39,63, 8,40,91,66,49,94,21},
{24,55,58, 5,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72},
{21,36,23, 9,75, 0,76,44,20,45,35,14, 0,61,33,97,34,31,33,95},
{78,17,53,28,22,75,31,67,15,94, 3,80, 4,62,16,14, 9,53,56,92},
{16,39, 5,42,96,35,31,47,55,58,88,24, 0,17,54,24,36,29,85,57},
{86,56, 0,48,35,71,89, 7, 5,44,44,37,44,60,21,58,51,54,17,58},
{19,80,81,68, 5,94,47,69,28,73,92,13,86,52,17,77, 4,89,55,40},
{ 4,52, 8,83,97,35,99,16, 7,97,57,32,16,26,26,79,33,27,98,66},
{88,36,68,87,57,62,20,72, 3,46,33,67,46,55,12,32,63,93,53,69},
{ 4,42,16,73,38,25,39,11,24,94,72,18, 8,46,29,32,40,62,76,36},
{20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74, 4,36,16},
{20,73,35,29,78,31,90, 1,74,31,49,71,48,86,81,16,23,57, 5,54},
{ 1,70,54,71,83,51,54,69,16,92,33,48,61,43,52, 1,89,19,67,48}
};
for(i=0;i<16;i++)
for(j=0;j<16;j++)
{sum1=a[i][j]*a[i][j+1]*a[i][j+2]*a[i][j+3];
if(sum1>max)
max=sum1;
}
System.out.print("max1 is:");//横向
System.out.println(max);
for(i=0;i<16;i++)
for(j=0;j<16;j++)
{sum2=a[i][j]*a[i+1][j]*a[i+2][j]*a[i+3][j];
if(sum2>max)
max=sum2;
}
System.out.print("max2 is:");//纵向
System.out.println(max);
for(i=0;i<16;i++)
for(j=0;j<16;j++)
{sum3=a[i][j]*a[i+1][j+1]*a[i+2][j+2]*a[i+3][j+3];
if(sum3>max)
max=sum3;
}
System.out.print("max3 is:");//斜向右下方
System.out.println(max);
for(i=3;i<20;i++)
for(j=0;j<16;j++)
{sum4=a[i][j]*a[i-1][j+1]*a[i-2][j+2]*a[i-3][j+3];
if(sum4>max)
max=sum4;
}
System.out.print("max4 is:");//斜向左下方
System.out.println(max);
}
}

3.输出如下

然后取四者中最大的就行。

欧拉计划第十一题--java实现的更多相关文章

  1. 用欧拉计划学Rust编程(第26题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...

  2. 通过欧拉计划学习Rust编程(第22~25题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...

  3. 用欧拉计划学Rust语言(第17~21题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...

  4. 用欧拉计划学习Rust编程(第13~16题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...

  5. 用欧拉计划学Rust语言(第7~12题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...

  6. 通过欧拉计划学Rust(第1~6题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,看来想准确理解MOVE的机制,还需要对Rust有深刻的理解,所以开始了Rust的快速入门学习. 看了一下网上有关Rust的介绍,都 ...

  7. 通过欧拉计划学Rust编程(第54题)

    由于研究Libra等数字货币编程技术的需要,学习了一段时间的Rust编程,一不小心刷题上瘾. 刷完欧拉计划中的63道基础题,能学会Rust编程吗? "欧拉计划"的网址: https ...

  8. 通过欧拉计划学Rust编程(第500题)

    由于研究Libra等数字货币编程技术的需要,学习了一段时间的Rust编程,一不小心刷题上瘾. "欧拉计划"的网址: https://projecteuler.net 英文如果不过关 ...

  9. 刷完欧拉计划中难度系数为5%的所有63道题,我学会了Rust中的哪些知识点?

    我为什么学Rust? 2019年6月18日,Facebook发布了数字货币Libra的技术白皮书,我也第一时间体验了一下它的智能合约编程语言MOVE,发现这个MOVE是用Rust编写的,看来想准确理解 ...

随机推荐

  1. Spring学习(六)bean装配详解之 【通过注解装配 Bean】【基础配置方式】

    通过注解装配 Bean 1.前言 优势 1.可以减少 XML 的配置,当配置项多的时候,XML配置过多会导致项目臃肿难以维护 2.功能更加强大,既能实现 XML 的功能,也提供了自动装配的功能,采用了 ...

  2. Java8——Stream流式操作的一点小总结

    我发现,自从我学了Stream流式操作之后,工作中使用到的频率还是挺高的,因为stream配合着lambda表达式或者双冒号(::)使用真的是优雅到了极致!今天就简单分(搬)享(运)一下我对strea ...

  3. Python练习题 038:Project Euler 010:两百万以内所有素数之和

    本题来自 Project Euler 第10题:https://projecteuler.net/problem=10 # Project Euler: Problem 10: Summation o ...

  4. linux系统或centos7安装nginx

    一.Linux下安装nginx 1.添加源 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cen ...

  5. GOOGLE工作法(世界一速)|木深读书笔记

  6. 065 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参无返回值方法

    065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

  7. DoModal 函数的用法

    转载:https://blog.csdn.net/mpp_king/article/details/79707728                        https://www.cnblog ...

  8. SPI应用 用SPI总线读取气压传感器SCP1000的数据

    Using SPI to read a Barometric Pressure Sensor This example shows how to use the SPI (Serial Periphe ...

  9. python 中的三种等待方式

    为什么要用等待时间: 今天在写App的自动化的脚本时发现一个元素,但是往往执行脚本是报错( An element could not be located on the page using the ...

  10. 用 Java 实现的八种常用排序算法

    八种排序算法可以按照如图分类 交换排序 所谓交换,就是序列中任意两个元素进行比较,根据比较结果来交换各自在序列中的位置,以此达到排序的目的. 1. 冒泡排序 冒泡排序是一种简单的交换排序算法,以升序排 ...