Подтвердить что ты не робот

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

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

2LL*r+1LL

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

Их включение выглядит следующим образом:

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

или

#include <cmath>
4b9b3361

Ответ 1

LL делает целочисленный литерал типа long long.

So 2LL, является 2 типа long long.

Без LL литерал будет иметь тип int.

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

1   << 40
1LL << 40

Только с буквальным 1 (предполагая, что int будет 32-битным, вы смещаетесь за пределы размера целочисленного типа → undefined). С помощью 1LL вы устанавливаете тип long long перед рукой, и теперь он будет правильно возвращать 2 ^ 40.