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/ ...
随机推荐
- 【LeetCode】389.找不同
389.找不同 知识点:哈希表.抵消思想: 题目描述 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. ...
- Java语言程序与数据结构(基础篇)-随记
有关代码见BasicJava U1-Java概述 1-程序设计风格和文档 1.注释风格 注释:// ; 块注释:/* ~ / ; javadoc注释:/* ~ */ javadoc注释 eg. /** ...
- Android开发在Activity外申请权限调用相机打开相册
问题描述: 最近在项目中遇到一个需要调用相册和打开相机的需求,但是,在Android 6.0以后,调用相册属于危险权限,需要开发者动态获取,这就意味着我们申请权限是与Activity绑定的,但如果一个 ...
- Table类
Interpreter类, class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateInterpr ...
- 初学MyBatis(踩坑)Error querying database. Cause: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
最近在学习Mybatis,代码全部根据教程写好了,一运行结果报了一个错误,主要错误内容: Caused by: org.apache.ibatis.exceptions.PersistenceExce ...
- Unsupported major.minor version 52.0解决办法【转】
1.首先解释一下报错原因: stanford parser和jdk版本对应关系 J2SE8=52, J2SE7=51, J2SE6.0=50, J2SE5.0=49, JDK1.4=48, JDK1. ...
- rsync(873)未授权访问
cd vulhub-master/rsync/common docker -composeup -d 检测 1.列出目标服务器的同步目录 rsync 192.168.244.129:: 2.查看模块文 ...
- icmp介绍以及arp攻击
目录 一.ip数据包格式 二.ICMP协议介绍 三.ARP协议介绍 四.ARP攻击原理 一.ip数据包格式 网络层的功能: 定义了基于ip协议的逻辑地址 连接不同的媒介类型 选择是数据通过网络的最佳途 ...
- 文件上传之WAF绕过及相安全防护
文件上传在数据包中可修改的地方 Content-Disposition:一般可更改 name:表单参数值,不能更改 filename:文件名,可以更改 Content-Type:文件 MIME,视情况 ...
- 如何看待Android开发的“前景和内卷”
我们首先来意淫一波 5G时代Android即将崛起,Android将与物联网强强联合,配合上5G信息高速传递的模式,再搭配物联网号召的"万物互通"的旗号,同时各位Android开发 ...