跳转到内容

编程中的基础数学技巧

在在写算法的时候,有非常实用的基础数学技巧。下面我将列举一下。

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;
}