我一直在寻找一些在谷歌编程挑战的解决方案,而有些人用这个东西,我以前从未见过。 例如,
2LL*r+1LL
什么是2LL和1LL是什么意思?
它们包括如下所示:
#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES
要么
#include <cmath>
我一直在寻找一些在谷歌编程挑战的解决方案,而有些人用这个东西,我以前从未见过。 例如,
2LL*r+1LL
什么是2LL和1LL是什么意思?
它们包括如下所示:
#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES
要么
#include <cmath>
该LL
使得整数文字类型的long long
。
所以2LL
,是类型的2 long long
。
如果没有LL
,文字只会类型的int
。
当你做这样的东西这一点很重要:
1 << 40
1LL << 40
只用字面1
,(假设int
为32位,你转移超出整数类型的大小- >未定义的行为)。 随着1LL
,你的类型设置为long long
的手之前,现在将正确地返回2 ^ 40。