Что такое 1LL или 2LL в C и C ++?

Я смотрел на некоторые решения в Google Code Jam, и некоторые люди использовали то, чего я никогда раньше не видел. Например,

2LL*r+1LL

Что означает 2LL и 1LL?

Их включения выглядят так:

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

или же

#include <cmath>

30

Решение

LL делает целое число литералом типа long long,

Так 2LL, это 2 типа long long,

Без LL, литерал будет только типа int,

Это важно, когда вы делаете такие вещи:

1   << 40
1LL << 40

С буквальным 1, (при условии int чтобы быть 32-битным, вы выходите за пределы размера целочисленного типа -> неопределенное поведение).
С 1LLВы устанавливаете тип на long long перед рукой и теперь он вернёт 2 ^ 40.

53

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]