Consigne:每个整数都在1到10 9的范围内.
我在类型中使用变量 unsigned long long int
对于规定的范围是否足够?
是的(假设您采用表示法10^9
的意思1e9
- ^
是C中的XOR运算符,并且10^9
是3
).
一个unsigned long long
具有能够存储一个数0 2之间和64 - 1.您的最大比这要小很多.
另请注意,unsigned long
必须能够存储介于0和2之间的数字32 - 1.您的最大值也小于此值.
10 ^ 9小于2 ^ 32
因此,在您的情况下,不需要使用unsigned long long
(它适合,是),这是过度杀伤,可能会导致运行速度变慢.
使用正确的类型,在stdint.h
include:uint32_t
或uint_least32_t
(uint32_t vs uint_fast32_t vs uint_least32_t)中标准化
long
也保证至少32位,所以它也是一个好的和简单的选择.