The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × 8 × 9 = 5832.

Find the thirteen adjacent digits in the 1000-digit number that have the greatest product. What is the value of this product?

譯文:

觀察著1000個數字,通過運算可得,最大的連續的四位數的乘機為5832,求出最大的連續的13位數的乘機?

=============================

第一次code:

 import java.util.ArrayList;
 import java.util.List;

 public class Main
 {
     public static void main(String[] args)
     {
         System.out.println(num(run()));
     }
     /*
     *  將1000個數放到一個字符串
     *  將字符串轉換成字符串數組
     *  計算每連續的13位數的乘機,並放置在Arraylist數組中
     *
     *  注意:乘機的類型為long,如果為int的話,數據結果會超出,導致計算結果出錯
     */
     public static List run()
     {
         String a="73167176531330624919225119674426574742355349194934"
                 +"96983520312774506326239578318016984801869478851843"
                 +"85861560789112949495459501737958331952853208805511"
                 +"12540698747158523863050715693290963295227443043557"
                 +"66896648950445244523161731856403098711121722383113"
                 +"62229893423380308135336276614282806444486645238749"
                 +"30358907296290491560440772390713810515859307960866"
                 +"70172427121883998797908792274921901699720888093776"
                 +"65727333001053367881220235421809751254540594752243"
                 +"52584907711670556013604839586446706324415722155397"
                 +"53697817977846174064955149290862569321978468622482"
                 +"83972241375657056057490261407972968652414535100474"
                 +"82166370484403199890008895243450658541227588666881"
                 +"16427171479924442928230863465674813919123162824586"
                 +"17866458359124566529476545682848912883142607690042"
                 +"24219022671055626321111109370544217506941658960408"
                 +"07198403850962455444362981230987879927244284909188"
                 +"84580156166097919133875499200524063689912560717606"
                 +"05886116467109405077541002256983155200055935729725"
                 +"71636269561882670428252483600823257530420752963450";
         char [] b = a.toCharArray();
         List<Long>list = new ArrayList<Long>();
         for(int i=0;i<b.length-13;i++)
         {
             list.add(Long.valueOf(String.valueOf(b[i]))*Long.valueOf(String.valueOf(b[i+1]))
                     *Long.valueOf(String.valueOf(b[i+2]))*Long.valueOf(String.valueOf(b[i+3]))
                     *Long.valueOf(String.valueOf(b[i+4]))*Long.valueOf(String.valueOf(b[i+5]))
                     *Long.valueOf(String.valueOf(b[i+6]))*Long.valueOf(String.valueOf(b[i+7]))
                     *Long.valueOf(String.valueOf(b[i+8]))*Long.valueOf(String.valueOf(b[i+9]))
                     *Long.valueOf(String.valueOf(b[i+10]))*Long.valueOf(String.valueOf(b[i+11]))
                     *Long.valueOf(String.valueOf(b[i+12])));
         }
         return list;
     }
     /*
     *  遍歷ArrayList數組
     *  比較輸出最大值
     */
     public static long num(List list)
     {
         long max=(Long)list.get(0);
         for(int i=0;i<list.size();i++)
         {
             if(max < (Long)list.get(i))
             {
                 max = (Long)list.get(i);
             }
         }
         return max;
     }
 }

Answer : 23514624000

時間效率: 5 毫秒。

projecteuler Problem 8 Largest product in a series的更多相关文章

  1. Problem 8: Largest product in a series

    先粘实现代码,以后需要再慢慢补充思路 s = ''' 73167176531330624919225119674426574742355349194934 9698352031277450632623 ...

  2. Largest product in a series

    这个我开始理解错了,算错了. 我以为是求连续5个数的最大值,结果,是连接5个数相乘的最大值. 英语不好,容易吃亏啊. Find the greatest product of five consecu ...

  3. 【Project Euler 8】Largest product in a series

    题目要求是: The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × ...

  4. Project Euler 8 Largest product in a series

    题意:寻找这 1000 个数中相邻 13 个数相乘积最大的值 思路:首先想到的是暴力,但是还可以利用之前记录过的数值,什么意思呢?即在计算 2 - 14 后,再计算 3 - 15 时完全可以利用之前计 ...

  5. Largest product from 3 integers

    https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...

  6. Problem 4: Largest palindrome product

    A palindromic number reads the same both ways. The largest palindrome made from the product of two 2 ...

  7. R语言学习——欧拉计划(11)Largest product in a grid

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

  8. Largest product in a grid

    这个比前面的要复杂点,但找对了规律,还是可以的. 我逻辑思维不强,只好画图来数数列的下标了. 分四次计算,存入最大值. 左右一次,上下一次,左斜一次,右斜一次. In the 2020 grid be ...

  9. projecteuler----&gt;problem=8----Largest product in a series

    title: The four adjacent digits in the 1000-digit number that have the greatest product are 9 9 8 9 ...

随机推荐

  1. D - Half of and a Half 大数

    D - Half of and a Half Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I ...

  2. cut - 小巧的文本截取工具

    简介 cut命令是Unix下的一个命令行程序.cut命令是以行为单位来处理的.cut命令处理的是标准输入,所以可以结合管道来进行文本的处理. 命令格式 cut option… [file]… cut命 ...

  3. 2015GitWebRTC编译实录16

    新问题,看应该是视频编解码那里出问题了.找找看.WebRtc VoiceEngine codecs:ISAC/16000/1 (103)ISAC/32000/1 (104)Unexpected cod ...

  4. Java配置环境变量

    首先,你应该已经安装了Java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 Java 的环境变量 1.进入“计算机”的“属性”选项后如图 2.选择“高级 ...

  5. Javascript 中的 && 和 || 使用小结

    准备两个对象用于下面的讨论. var alice = { name: "alice", toString: function () { return this.name; } }; ...

  6. Objective-c——多线程开发第一天(pthread/NSThread)

    一.为什么要使用多线程? 1.循环模拟耗时任务 1.同步执行 2.异步执行 (香烟编程小秘书) 3.进程 系统中正在运行的一个应用程序 每个进程之间是独立的, 均运行在其专用的且受保护的内存空间 通过 ...

  7. 渴切API参考手册

    渴切:是国内优秀的开源css框架. 渴切是一个开源中文 (X)HTML/CSS 框架 ,它的目的是减少你的css开发时间.它提供一个可靠的css基础去创建你的项目,能够用于网站的快速设计,通过重设和重 ...

  8. linux服务之irqbalance

    irqbalance 理论上:启用 irqbalance 服务,既可以提升性能,又可以降低能耗.irqbalance 用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态 ...

  9. StackExchange.Redis.Extensions.Core 源码解读之 Configuration用法

    前言 之前接触到Redis,然后选用了对StackExchange.Redis又一层封装的StackExchange.Redis.Extensions.Core类库.阅读源代码的过程中发现了他使用Co ...

  10. 快速使用node.js进行web开发

    首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这 ...