Project Euler -> problem 8

本文介绍了一种算法,用于找到一个1000位整数中连续5个数字的最大乘积。通过读取文件中的长整数并利用滑动窗口的概念来实现这一目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

731671765313306249192251 196744265747423553491949 34
969835203127745063262395 783180169848018694788518 43
858615607891129494954595 017379583319528532088055 11
125406987471585238630507 156932909632952274430435 57
668966489504452445231617 318564030987111217223831 13
622298934233803081353362 766142828064444866452387 49
303589072962904915604407 723907138105158593079608 66
701724271218839987979087 922749219016997208880937 76
657273330010533678812202 354218097512545405947522 43
525849077116705560136048 395864467063244157221553 97
536978179778461740649551 492908625693219784686224 82
839722413756570560574902 614079729686524145351004 74
821663704844031998900088 952434506585412275886668 81
164271714799244429282308 634656748139191231628245 86
178664583591245665294765 456828489128831426076900 42
242190226710556263211111 093705442175069416589604 08
071984038509624554443629 812309878799272442849091 88
845801561660979191338754 992005240636899125607176 06
058861164671094050775410 022569831552000559357297 25
716362695618826704282524 836008232575304207529634 50
*/

int main(void)
{
      char ch;
      int i=0,prod,prod1=0;
      FILE *fp;
      fp = fopen("Number.txt","r");
      while(ch != EOF){
            prod=1;
            for(i=1,ch = getc(fp);i<=5;i++,ch = getc(fp)){
            prod *= (ch-48);
      }
      fseek(fp,-5L,SEEK_CUR);
      prod1 = prod>prod1?prod:prod1;
      }
      printf("The maximum produrt is:%d",prod1);

      return 0;
}

Answer:
40824
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值