gpt4 book ai didi

c++ - 在 C++ 中增加大数字(近 100.000 位)

转载 作者:太空狗 更新时间:2023-10-29 20:04:29 26 4
gpt4 key购买 nike

C++如何存储近100000位的海量数字?..

我试过使用 long long intlong double int..对我没有任何作用..

有没有其他方法可以存储这么大的数字?

我希望找到大于给定大数的最小回文。

最佳答案

在评论部分进一步说明:

是的,您可以在 C++ 中将您的数字表示为 std::string。

Here 您会找到用于递增表示为字符串的数字的代码:

#include <string>
#include <iostream>
#include <ostream>

void increment_numerical_string(std::string& s)
{
std::string::reverse_iterator iter = s.rbegin(), end = s.rend();
int carry = 1;
while (carry && iter != end)
{
int value = (*iter - '0') + carry;
carry = (value / 10);
*iter = '0' + (value % 10);
++iter;
}
if (carry)
s.insert(0, "1");
}

int main()
{
std::string big_number = "123456789012345678901234567899";
std::cout << "before increment: " << big_number << "\n";
increment_numerical_string(big_number);
std::cout << "after increment: " << big_number << "\n";
}

您可以在循环中使用它来增加您的大数字和 check if the resulting string is a palindrome :

if( equal(s.begin(), s.begin() + s.size()/2, s.rbegin()) )
std::cout << "is a palindrome.\n";
else
std::cout << "is NOT a palindrome.\n";

编辑

我并不认为这是解决问题的有效且正确的方法。它只是大数的一种表示和递增方法。

关于c++ - 在 C++ 中增加大数字(近 100.000 位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19556340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com