《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 版权协议,转载请附上原文出处链接和本声明。