ProjectEuler 008题
题目:
The four adjacent digits in the 1000-digit number that have the greatest product are 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
Find the thirteen adjacent digits in the 1000-digit number that have the greatest product. What is the value of this product?
代码:将这个矩阵完全复制到一个txt文件中,进行读取计算
1 #include<iostream>
2 //#include<stdio.h>
3 using namespace std;
4
5 int main() {
6 FILE* pFile = fopen("digits.txt","r");
7 if(pFile == NULL){
8 cout << "打开文件失败!" << endl;
9 return 0;
10 }
11 //unsigned int res = 1;
12 long long res = 1;
13 while(!feof(pFile)) {
14
15 char cnums[14];
16 bool end = false;
17 bool has_n = false;
18 for(int i = 0; i < 14; i++) {
19 if(feof(pFile)){
20 end = true;
21 break;
22 }
23 if(i == 13 && has_n == false){
24 break;
25 }
26 char c = fgetc(pFile);
27 if(c == '\n'){
28 has_n = true;
29 }
30 cnums[i] = c;
31 }
32 if(end)
33 break;
34 //要考虑是否有'/n'和'0'
35 //unsigned int m = 1;
36 long long m = 1;
37 bool haszero = false;
38 int j=0;//可能要用来表示0的位置
39 int k = 13;
40 if(has_n){
41 k = 14;
42 }
43 for(j = 0; j<k;j++) {
44 if(cnums[j] != '0' && cnums[j] != '\n') {
45 m = m*(cnums[j]-'0');
46 }
47 else if (cnums[j] == '0'){
48 haszero = true;
49 break;//13个数字中含有0
50 }
51 }
52 if(haszero == false) {//13个数字中不含0,比较结果,并返回指针
53 if(m > res){
54 res = m;
55 }
56 fseek(pFile, -(k-1), SEEK_CUR );
57 //cout << fgetc(pFile);
58 } else {//13个数字中含有0,将指针返回到0之后
59 fseek(pFile, -k, SEEK_CUR );
60 fseek(pFile, j+1, SEEK_CUR );
61 //cout << fgetc(pFile);
62 }
63 cout << res << endl;
64 }
65 cout << res;
66 if(fclose(pFile) == EOF) {
67 cout << "关闭文件失败." << endl;
68 }
69 system("pause");
70 return 0;
71 }
ProjectEuler 008题的更多相关文章
- ProjectEuler 做题记录
		
退役选手打发时间的PE计划 挂在这里主要是dalao们看到有什么想交流的东西可以私聊哦(站内信或邮箱吧)~~当然现在高三也不怎么能上网. 2017/8/11 595 :第一题QAQ 2017/8/1 ...
 - ProjectEuler 005题
		
题目: 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any ...
 - ProjectEuler 009题
		
题目: A Pythagorean triplet is a set of three natural numbers, a b c, for which, a2 + b2 = c2 For exam ...
 - ProjectEuler 007题
		
题目:By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is ...
 - ProjectEuler 006题
		
题目: The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square ...
 - ProjectEuler 004题
		
1 #include<iostream> 2 using namespace std; 3 4 int main() { 5 bool isPalindromic (int num); 6 ...
 - ProjectEuler 003题
		
1 //题目:The prime factors of 13195 are 5, 7, 13 and 29. 2 //What is the largest prime factor of the n ...
 - nim也玩一行流,nim版的list comprehension
		
nim 是一门风格类似python的静态编译型语言,官方网站:http://nim-lang.org 如果你想折腾nim的编辑环境,可以用sublime text3 +插件nimlime,notepa ...
 - ProjectEuler && Rosecode && Mathmash做题记录
		
退役选手打发时间的PE计划 挂在这里主要是dalao们看到有什么想交流的东西可以私聊哦(站内信或邮箱吧) 2017/8/11 PE595 :第一题QAQ 2017/8/12 PE598 2017/ ...
 
随机推荐
- Spring RestTemplate 之exchange方法
			
●exchange方法提供统一的方法模板进行四种请求:POST,PUT,DELETE,GET (1)POST请求 String reqJsonStr = "{\"code\&quo ...
 - 二本,拿腾讯,阿里 offer 了
			
我的春招 Hello,首先自我介绍一下,我是一所普普通通的二本院校的大三学生,坐标江苏. 今年三月份拿到了腾讯实习的offer,人生中第一次面试是腾讯,部门是 TEG 的云架构,并且顺利签约,说实话内 ...
 - Luogu2839 [国家集训队]middle 题解
			
题目很好,考察对主席树的深入理解与灵活运用. 首先看看一般解决中位数的思路,我们二分一个 \(mid\),将区间中 \(\ge mid\) 的数置为 \(1\),小于的置为 \(-1\),然后求区间和 ...
 - zookeeper与eureka比较
			
一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性) zookeeper确保cp 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接d ...
 - python 实现自动部署测试环境
			
预设条件 产品运行在Linux CentOS6 X64上 python3,Djanggo,Cherrypy安装好手动安装过程 登录服务器 检查是否有以前的版本的产品在运行,有,停掉 如果有原来的代码包 ...
 - python包安装
			
python包安装: 一种是有网操作:pip install 包名:例子[pip install setuptools] 无网络服务器上操作: 先把包下载:传上去再安装[] 1.一种是 *.wh ...
 - 通过Xlib枚举指定进程下所有窗体
			
在windows系统下如果想要枚举指定进程的窗体,我们可以通过EnumWindows加上自己实现的回调函数进行实现,那么在linux下该如何做呢? 其实也很简单,在linux下,我们可以通过xlib中 ...
 - 使用JavaMailSender  发送邮件
			
使用JavaMailSender 发送邮件 package com.juvenxu.mvnbook.account.email; import javax.mail.MessagingExceptio ...
 - koa踩坑记录
			
1.koa热更新用nodemon 2.koa中暂不支持import/export 3.只发送options请求,没有后续请求 当ctx.set('Access-Control-Allow-Cred ...
 - Spring Cloud分区发布实践(1) 环境准备
			
最近研究了一下Spring Cloud里面的灰度发布, 看到各种各样的使用方式, 真是纷繁复杂, 眼花缭乱, 不同的场景需要不同的解决思路. 那我们也来实践一下最简单的场景: 区域划分: 服务分为be ...