我正在查看 Google Code Jam 中的一些解决方案,并且有些人使用了我以前从未见过的这些东西。例如,
2LL*r+1LL
2LL 和 1LL 是什么意思?
它们的包含如下所示:
#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES
或
#include <cmath>
最佳答案
LL
使 long long
类型的整数文字。
所以2LL
,是long long
类型的2。
如果没有 LL
,文字只能是 int
类型。
当你做这样的事情时,这很重要:
1 << 40
1LL << 40
仅使用文字 1
,(假设 int
为 32 位,您将超出整数类型的大小 -> 未定义行为)。
使用 1LL
,您事先将类型设置为 long long
,现在它将正确返回 2^40。
https://stackoverflow.com/questions/16248221/