zoukankan      html  css  js  c++  java
  • 求相邻的13个数相乘的最大乘积----Python

    1000个数中四个相邻的数的最大乘积是 9 × 9 × 8 × 9 = 5832.

    73167176531330624919225119674426574742355349194934
    96983520312774506326239578318016984801869478851843
    85861560789112949495459501737958331952853208805511
    12540698747158523863050715693290963295227443043557
    66896648950445244523161731856403098711121722383113
    62229893423380308135336276614282806444486645238749
    30358907296290491560440772390713810515859307960866
    70172427121883998797908792274921901699720888093776
    65727333001053367881220235421809751254540594752243
    52584907711670556013604839586446706324415722155397
    53697817977846174064955149290862569321978468622482
    83972241375657056057490261407972968652414535100474
    82166370484403199890008895243450658541227588666881
    16427171479924442928230863465674813919123162824586
    17866458359124566529476545682848912883142607690042
    24219022671055626321111109370544217506941658960408
    07198403850962455444362981230987879927244284909188
    84580156166097919133875499200524063689912560717606
    05886116467109405077541002256983155200055935729725
    71636269561882670428252483600823257530420752963450

    找出1000个数中13个相邻的数的最大乘积?

    提示:①当相邻的13个数中有0出现时可以不用计算

            ②当计算s[i]~s[i+12]的乘积时,s[i-1]>s[i+12]时可以不必计算

    s="""73167176531330624919225119674426574742355349194934
    96983520312774506326239578318016984801869478851843
    85861560789112949495459501737958331952853208805511
    12540698747158523863050715693290963295227443043557
    66896648950445244523161731856403098711121722383113
    62229893423380308135336276614282806444486645238749
    30358907296290491560440772390713810515859307960866
    70172427121883998797908792274921901699720888093776
    65727333001053367881220235421809751254540594752243
    52584907711670556013604839586446706324415722155397
    53697817977846174064955149290862569321978468622482
    83972241375657056057490261407972968652414535100474
    82166370484403199890008895243450658541227588666881
    16427171479924442928230863465674813919123162824586
    17866458359124566529476545682848912883142607690042
    24219022671055626321111109370544217506941658960408
    07198403850962455444362981230987879927244284909188
    84580156166097919133875499200524063689912560717606
    05886116467109405077541002256983155200055935729725
    71636269561882670428252483600823257530420752963450"""

    def greatest(a,b):
        temp=1
        if a>0 and s[a-1]>s[b]:
            return 0
        for i in range(a,b+1):
            if s[i]=='0':
                return 0
            temp=temp*int(s[i])
        return temp

    s=s.replace(' ','')
    result=0
    for i in range(0,1000-13):
        cmp=greatest(i,i+12)
        if result<cmp:
            result=cmp
    print(result)

  • 相关阅读:
    Python Django框架笔记(三):django工作方式简单说明和创建用户界面
    Python Django框架笔记(二):创建应用和django 管理
    Python笔记(十三):urllib模块
    Python Django框架笔记(一):安装及创建项目
    Python笔记(十二):操作数据库
    Python笔记(十一):多线程
    Python网络爬虫笔记(五):下载、分析京东P20销售数据
    Python笔记(十):正则表达式
    Python网络爬虫笔记(四):使用selenium获取动态加载的内容
    【React Native】Execution failed for task ':app:installDebug'. > com.android.builder.testing.api.DeviceException: No online devices found.
  • 原文地址:https://www.cnblogs.com/lwjl/p/4233300.html
Copyright © 2011-2022 走看看