1、交换 A 和 B
// 1.中间变量
void swap1(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
// 2.加法
void swap2(int a, int b)
{
a = a + b;
b = a - b;
a = a - b;
}
// 3.异或(相同为0,不同为1)
void swap3(int a, int b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
2、求最大公约数
/** 1.直接遍历法 */
int maxCommonDivisor(int a, int b)
{
int max = 0;
for (int i = 1; i <= b; i++) {
if (a % i == 0 && b % i == 0) {
max = i;
}
}
return max;
}
/** 2.辗转相除法 */
int maxCommonDivisor(int a, int b) {
int r;
while(a % b > 0) {
r = a % b;
a = b;
b = r;
}
return b;
}
// 扩展:最小公倍数 = (a * b)/最大公约数
3、内容来源
iOS开发_小迷糊 - iOS面试题:算法与数据结构