您的位置:首页 > 职场人生

程序员面试题精选100题(55)-不用+、-、×、÷做加法

2013-01-08 19:41 295 查看
想到用位运算了,但没想到这么简洁的算法

// 程序员面试题精选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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: