zoukankan      html  css  js  c++  java
  • 欧拉计划008

    找出以下这个1000位的整数中连续5个数字的最大乘积。(例如前五个数字的乘积是7*3*1*6*7=882)

                                                 

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

    ——————————————————————————————————————————————————————————————

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main (void)
    {
        FILE *fpin;
        char ch,a[1020];
        int i,j,l,m=0;
        long k,max=0;
    
        if((fpin=fopen("file_a.dat","r"))==NULL)
        {
            printf("can't open this file!\n");
            exit(0);
        }
    
        ch=fgetc(fpin);
    
        while(ch!=EOF)
        {
            if(ch=='\n') ch=fgetc(fpin);
            a[m++]=ch;
            ch=fgetc(fpin);
        }
        printf("\n");
        fclose(fpin);
    
     
        for (i=0;i<=995;i++)
        {
            k=1;
            for (j=0;j<5;j++)
            {
               k=k*(a[i+j]-'0');
            }
            if (k>max)
            {
               max=k;
               l=i;
            }
        }
        printf("%d*%d*%d*%d*%d=%d\n从第%d开始,最大值:%ld\n",a[l]-'0',a[l+1]-'0',a[l+2]-'0',a[l+3]-'0',a[l+4]-'0',max,l+1,max);
    
        return 0;
    }

    输出结果:

  • 相关阅读:
    正确使用Core Data多线程的3种方式
    iOS开发周报:新一代 iPhone 可能取消耳机插口,Facebook 发布 tvOS SDK
    Atomic:Android、iOS和网页的设计工具
    iOS应用架构谈(三):View层的组织和调用方案(下)
    SQL server 2008数据库的备份与还原(转)
    重定向技术
    Python 正则表达式应用【转载】
    Fidder 工具使用
    HTTP请求大全
    RobotFramework环境搭建
  • 原文地址:https://www.cnblogs.com/hhccdf/p/2982844.html
Copyright © 2011-2022 走看看