题目:

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 }

最新文章

  1. 总结Objective-c常用算法
  2. 全面理解JavaScript中的闭包的含义及用法
  3. 盒模型结构——3D盒模型
  4. ios8中,相册创建后手动删除,不能再进行创建显示
  5. iOS导航栏-关闭半透明
  6. EntityFramework优缺点(转)
  7. 支持Git的代码托管网站
  8. poj2524 解题报告
  9. iOS9 适配网络请求,适配分享失败,适配无法正常跳转到客户端
  10. 配置VIP地址
  11. PS 图像特效-非线性滤波器
  12. 查看centos系统位数和强制关闭yum
  13. Server酱微信推送中的问题
  14. ES中的分词器
  15. CSS基础一
  16. DirBuste 使用
  17. laravel5.3安装redis扩展包
  18. python学习中的bug
  19. Bootstrap Search Suggest 下拉框模糊查询
  20. 解决IDEA查看源码时提示:Library source does not match the bytecode for class的问题分析

热门文章

  1. robotframework - selenium Api介绍
  2. 使用idea,GitHub时,push和clone出现的一些问题
  3. 【LeetCode】145. 二叉树的后序遍历
  4. CF1032G Chattering
  5. 【动态规划DP】[USACO16OPEN]248
  6. 关于 .NET 与 JAVA 在 JIT 编译上的一些差异
  7. nexus 私服 设置本公司代理 记录
  8. 新一代垃圾回收器ZGC的探索与实践
  9. [JS]回调函数和回调地狱
  10. POJ 1190 生日蛋糕题解