在C++中,1ll
表示 long long
类型的整数常量1。这里的 ll
是 long long
的缩写。这种写法主要用于以下几个方面:
1. 为什么需要 1ll
?
在您的代码中,1ll
主要用于 防止整数溢出 和 确保正确的类型转换:
cpp
复制
p = 1ll * p * i % MOD; f[i + 1] = 1ll * i * (i + 1) / 2 % MOD * p % MOD + 1ll * f[i] * (i + 1) % MOD;
-
p
和i
默认是int
类型,直接相乘可能会导致 溢出(因为int
最大约 2×10⁹,而MOD = 998244353
,乘积可能超过这个范围)。 -
1ll
将表达式提升为long long
类型(范围约 9×10¹⁸),避免溢出。
2. 1ll
的具体作用
-
类型提升:
当1ll
与其他int
变量运算时,