《C语言入门100例》(第1例) A+B

今天打卡的章节是《C语言入门100例》(第1例) A+B

目录

两整数之和

             思路

递归乘法

        思路


两整数之和

               371. 两整数之和https://leetcode-cn.com/problems/sum-of-two-integers/

             思路

直接异或加位运算
int getSum(int a, int b){
    int num=a^b;
    unsigned int sum=a&b;       //无符号数防止溢出
    while(sum)
    {
        a=num;                              
        b=sum<<1;               //(a&b)<<1保证进位获取
        num=a^b;                //用异或代替加法
        sum=a&b;
    }
    return num;
}

递归乘法

        面试题 08.05. 递归乘法https://leetcode-cn.com/problems/recursive-mulitply-lcci/

        思路

递归原函数
int multiply(int A, int B){
    if(A==0||B==0)            //判断存在0,直接输出0
    {
        return 0;
    }
    else
    {                         //每次取大的那个数进行相加,取小的那个数作递归运算
        if(A>B){
            return A+multiply(A,B-1);   
        }
        else{
            return B+multiply(A-1,B);
        }
    }
}

版权声明:本文为weixin_48789660原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>