处理C ++中的大数字

时间:2013-07-12 12:09:02

标签: c++

我正在使用Dev C ++

不稳定的一行是......

long long n=600851475143;

错误说明

integer constant is too long for "long" type

我需要帮助处理大数字。

4 个答案:

答案 0 :(得分:8)

long long n = 600851475143LL;

追加LL使其成为long long字面值。顺便说一句,long long直到C ++ 11才被标准化。

答案 1 :(得分:2)

在它之后放一个LL。

long long n=600851475143LL;

答案 2 :(得分:1)

没有后缀的整数常量得到最小的int long intlong long int,它们可以保存值(2.14.2,表6),因此,假设{{1}此值需要long long具有类型600851475413。从错误消息中,看起来编译器将常量视为类型long long而不是long。因此,添加long long是编译器错误的解决方法。

答案 3 :(得分:1)

您的编译器(g ++?)似乎不支持long long类型,并且数字应该以LL为后缀,而Visual C ++不支持。请尝试使用__int64代替n:

__int64 n=600851475143;

gcc和Visual C都支持Windows上的__int64。