有趣的A+B

计算a+b,不使用+,-,*,/,用^实现加法,用&实现进位,代码如下,复杂度log级别的,有意思哈~

#include <iostream>
#include <string>
#include <queue>
#include <complex>
using namespace std;
 
int go(int a, int b)
{
    int sum = a ^ b;
    int jin = a & b;
 
    if(jin)  return go(sum, jin << 1);
    else  return sum;
}
 
int main()
{
    int a, b;
    cin >> a >> b;
    cout << go(a, b);
}
posted @ 2011-05-19 22:40  litstrong  阅读(194)  评论(0编辑  收藏  举报