最近做题遇到的,先写这么多,再遇到再补充
#include <stdio.h>
int f(int x,int y) //x和y的平均值
{
return (x&y)+((x^y)>>1); //x&y取相同的位与,结果是x,y相同位的一半
} //x^y取x,y不同位,右移1等价于除2
int main()
{
printf("%d",f(1,99));
}
#include <stdio.h>
int f(int x,int y) //不用+实现x加y
{
int sum,temp;
if(0 == y)
{
return x;
}
sum = x^y;
temp = (x&y)<<1;
return f(sum,temp);
}
int main()
{
printf("%d",f(10,5));
}