我正在使用Dev C ++
不稳定的一行是......
long long n=600851475143;
错误说明:
integer constant is too long for "long" type
我需要帮助处理大数字。
答案 0 :(得分:8)
long long n = 600851475143LL;
追加LL
使其成为long long
字面值。顺便说一句,long long
直到C ++ 11才被标准化。
答案 1 :(得分:2)
在它之后放一个LL。
long long n=600851475143LL;
答案 2 :(得分:1)
没有后缀的整数常量得到最小的int
long int
和long 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。