求两个数的平均值
基本思想:将两个数进行按位与和按位异或之后右移一位的结果相加,最后的结果就是两个数的平均值
具体实现代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int ave(int x, int y)
{
return (x & y) + ((x ^ y) >> 1);
}
int main()
{
int a = 0;
int b = 0;
int ret = 0;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
ret = ave(a, b);
printf("%d\n", ret);
system("pause");
return 0;
}
求两个数之和
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int Add(int x, int y)
{
int wei = 0;
int jw = 0;
do
{
wei = x ^ y;
jw = (x & y) << 1;
x = wei;
y = jw;
} while (jw != 0);
return wei;
}
int main()
{
int a = 0;
int b = 0;
int ret = 0;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
ret = Add(a, b);
printf("%d\n", ret);
system("pause");
return 0;
}