62

我正在查看 Google Code Jam 中的一些解决方案,有些人使用了我以前从未见过的东西。例如,

2LL*r+1LL

2LL 和 1LL 是什么意思?

它们的包含如下所示:

#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES

或者

#include <cmath>
4

1 回答 1

111

使LL整数字面量为 type long long

所以2LL,是 2 的类型long long

如果没有LL,文字将只有 类型int

当你做这样的事情时,这很重要:

1   << 40
1LL << 40

仅使用文字1, (假设int为 32 位,您将超出整数类型的大小 -> 未定义的行为)。使用1LL,您将类型设置为long long之前,现在它将正确返回 2^40。

于 2013-04-27T04:07:14.913 回答