想到用位运算了,但没想到这么简洁的算法
// 程序员面试题精选100题(55)-不用+、-、×、÷做加法.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int AddWithoutArithmetic(int num1, int num2)
{
if(num2 == 0)
return num1;
int sum = num1 ^ num2;
int carry = (num1 & num2) << 1;
return AddWithoutArithmetic(sum, carry);
}
int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
cin>>a;cin>>b;
cout<<AddWithoutArithmetic(a,b)<<endl;
system("pause");
return 0;
}