全局变量和局部变量
全局变量在C++中是有默认初始值的。具体来说:
- 全局变量和静态变量的内置类型(如
int、double、char等)会被初始化为0。 - 对于类类型的全局对象,会调用其默认构造函数进行初始化。
- 对于数组类型的全局对象,其元素会被初始化为该类型的默认值。例如,如果数组的元素是
int类型,那么它们会被初始化为0。
然而,虽然全局变量有默认初始值,但最好的做法是在声明时显式地给它们赋初值。这样可以提高代码的可读性,并避免因依赖默认初始值而导致的潜在错误。
同余运算
- 如果 a ≡ b (mod c),意味着 a 与 b 对 c 取模后的余数相同。
- 同余定理
-
可乘性:(a × b) mod c 等于 ((a mod c) × (b mod c)) mod c
-
可加性:(a + b) mod c 等于 ((a mod c) + (b mod c)) mod c
-
同理也存在可减性
-
模运算的结合律、交换律和分配律,所以在可乘性中可以将括号去掉
-
今日碰见两个有意思的算法题 1、今天是星期日,那么过 a 的 b 次方天之后是星期几 2、幂a的b次方末三位数(利用模将其数降下来,再利用对%1000,结果是不会变的) 需要掌握一个思想“每次乘完就模,这样就不会爆炸”
整数运算溢出
在极限情况下运算过程中可能出现数据溢出 int 的情况,因此请将本题所有题解中的代码运算视作 long long 运算。