编程中的基础数学技巧
在在写算法的时候,有非常实用的基础数学技巧。下面我将列举一下。
1. 取模运算
作用:获取余数。
常用获取一个数字的个位数。
获取个位数num % 10
获取十位数num % 100
,依次类推
int num = 23465;int digit = num % 10; // 5
// 判断一个数是奇数还是偶数num % 2 == 0 // 偶数num % 2 == 1 // 奇数
2. 整数除法
作用:移除数字的最低位
常用是用来去掉数字的个位数。
去掉个位数num / 10
去掉十位数num / 100
,依次类推
int num = 23465;int remaining = num / 10; // 2346
3.数字反转
作用:将数字的各位逆序排列,常用于回文数判断或调整顺序。
int reverseNumber(int num) { int reversed = 0; while (num > 0) { reversed = reversed * 10 + num % 10; num /= 10; } return reversed;} // 示例:123 → 321
4.位运算
作用:高效处理二进制数据,优化计算速度。
判断奇偶:num & 1(比 num % 2 更快)
乘/除 2:num << 1(乘 2),num >> 1(除 2)
5.素数判断
素数是不能被除了1和它自身以外的任何数整除
原理:检查数字n是否能被2到$\sqrt{n}$
只需检查奇数(除2外,偶数不可能是素数)
boolean isPrime(int n) { if (n <= 1) return false; // 1和非正整数不是素数 if (n == 2) return true; // 2是素数 if (n % 2 == 0) return false; // 排除偶数
for (int i = 3; i * i <= n; i += 2) { // 检查3到√n的奇数 if (n % i == 0) { return false; } } return true;}