C++ (C+;+;)存储10^80的整数值

C++ (C+;+;)存储10^80的整数值,c++,variables,int,unsigned,bigint,C++,Variables,Int,Unsigned,Bigint,我有一个需要处理变量的问题 1N; 无符号长整型Z; int结果=0; 无符号长整型num=N; 而(N>0){ Z+=N%10; N/=10; } 而(Z%9!=0){ Z+=num; 结果++; } 我认为你应该使用大整数。几乎没有办法。 首先,使用C库,其中有C++接口。GNU多精度算术库: 第二种方法-您应该实现自己的BigInteger类 template<class Type> class BigInt { typedef type

我有一个需要处理变量的问题

1N; 无符号长整型Z; int结果=0; 无符号长整型num=N; 而(N>0){ Z+=N%10; N/=10; } 而(Z%9!=0){ Z+=num; 结果++; }
我认为你应该使用大整数。几乎没有办法。 首先,使用C库,其中有C++接口。GNU多精度算术库: 第二种方法-您应该实现自己的BigInteger类

    template<class Type>
    class BigInt
    {
        typedef typename Type BT;
     protected: 
        std::vector<Type> value_;
    };
模板
类BigInt
{
类型定义类型名称类型BT;
受保护的:
std::向量值;
};

换句话说,您只需将大数字拆分,并将每个部分记录到向量中。

使用
std::strings
@ThePhilomath我应该如何具体实现它?以及。。。?那么,什么,N是你想要操纵的巨大数字?如果是这样的话,你可能应该先看看GMP库,如果你能接受它的许可的话。@James:或者MPIR。我一直倾向于仅仅因为GMP(至少在我与他们打交道的时候)毫无帮助,而MPIR的人似乎不遗余力地提供帮助。YMMV.duplicates:,,,…有没有更简单的方法来解决这个问题?@N.T.我想没有。CPU用字节码解释您的输入,例如16-它是10000或0xf。对于“int”,我们只有4个字节,因此我们应该将大的数字拆分并记录到数组中。BigInteger的所有解释都是这样的。
    template<class Type>
    class BigInt
    {
        typedef typename Type BT;
     protected: 
        std::vector<Type> value_;
    };