当前位置: 首页 > 知识库问答 >
问题:

C++中的Euler 8项目

段干高歌
2023-03-14

我的代码

#include <iostream>
#include <string>

int main()
{
    std::string str = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";

    long long a = 1;
    long long fin = 0;

    for (int c = 0; c < 988; c++)
    {
        for (int d = 0; d < 13; d++)
        {
            a = a * str.at(c + d);
        }

        if (a > fin)
        {
            fin = a;
            std::cout << fin << " at " << c << std::endl;
        }

        a = 1;
    }

    system("pause");
}

输出:

7948587103611909356 at 0
8818137127266647872 at 15
8977826317031653376 at 71
9191378290313403392 at 214
9205903071867879424 at 573
Press any key to continue...

共有1个答案

朱季
2023-03-14

问题是字符'0''9'与整数09不一样;相反,'0'的值为48'1'的值为49,依此类推。(这些是这些字符的ASCII值。)

因此,要将数字字符转换为所需的数字--例如,从'3'中提取3--需要减去'0'。换句话说,您需要更改以下内容:

            a = a * str.at(c + d);

对此:

            a = a * (str.at(c + d) - '0');
 类似资料:
  • 我的应用程序可以正常编译,但出现以下运行时错误: 调用应用程序中对包装器的引用看起来是正确的。包装器dll存在于正确的位置。 这个项目曾经在别人的系统上构建和运行,我看了几次演示。那个人/电脑不再可用。自上次成功构建并运行以来,某些依赖项的某些路径已经更改,我已经修复了与此相关的所有编译错误。 为了澄清我的项目结构: 包装器是围绕C库的C /CLI包装器。当我们试图在应用程序中加载一个类时,会触发

  • 问题内容: 有谁知道我如何在.NET中实现Java的Deflater.deflate()功能,因此对于Java的Infalter.inflate()方法是可以理解的? 问候,拉法尔 问题答案: 我已经使用#zipLib。这很简单。 从他们的网站上获取: / zip压缩,而且我不想使用libzip.dll或类似的东西。我希望全部使用纯C# 。”

  • 问题内容: C#中与DateTime.Ticks等效的Java语言是什么? Java中与上述代码等效的东西是什么? 问题答案: 好吧,java.util.Date / Calendar的精度只有毫秒以下: 那是最接近的有效等效值。如果您需要在.NET ticks值和/ 之间进行转换,则基本上需要执行缩放(刻度到millis)和偏移(从1AD年1月1日到1970年1月1日)。 Java的内置日期和时

  • 问题内容: 我想知道Java中是否有等效于c ++的const。我了解final关键字,但是不幸的是,我不能使用它来声明函数返回值final。相反,它始终确保该功能不能被覆盖,对吗? 基本上,我想确保给定的返回类不能被修改并且是只读的。用Java有可能吗? 问题答案: 基本上,我想确保给定的返回类不能被修改并且是只读的。用Java有可能吗? 一种解决方法不是直接进行,而是一种 不可变的 对象 。

  • 祝大家今天过得愉快!我对c#的建筑废料项目还不熟悉。现在我正试图从一个网站上抓取标签href属性的内容。但还不能得出好的结论!以下是网页的结构: 我将删除href url链接字符串的内容(此处:“/national/南非/psl/20192020/regular seasure/r53038/”)。这是我的c#scraping项目: 我尝试了其他一些方法来删除href属性的内容。但仍然没有得到正确

  • 本文向大家介绍详解C 语言项目中.h文件和.c文件的关系,包括了详解C 语言项目中.h文件和.c文件的关系的使用技巧和注意事项,需要的朋友参考一下 详解C 语言项目中.h文件和.c文件的关系 在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代,那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在很多.c(.cpp)文件中的声明语句就是相同的,但他们却不得不一个字一个字地重复地将