简单算法

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面试题:算法与数据结构

posted @ 2020-03-15 13:59  和风细羽  阅读(165)  评论(0编辑  收藏  举报