不用加减乘除做加法47

来源:互联网 发布:犀牛软件调整模型尺寸 编辑:程序博客网 时间:2024/06/05 22:34
1、循环实现
#include <iostream>using namespace std;int add(int num1,int num2){    int sum = 0 ,carry = 0;    do    {        sum = num1^num2;        carry = (num1&num2)<<1;        num1 = sum;        num2 = carry;    }    while(num2!=0);    return num1;}int main(){    int num1 = 7,num2 = 5;    int sum = add(num1,num2);    cout<<sum<<endl;    return 0;}


2、递归实现1


#include <iostream>using namespace std;int add(int num1,int num2){    if(num2 == 0)        return num1;    else    {        int sum = num1^num2;        int carry = (num1&num2)<<1;        num1 = sum;        num2 = carry;        add(num1,num2);    }}int main(){    int num1 = 4,num2 =77;    int sum = add(num1,num2);    cout<<sum<<endl;    return 0;}


3、递归实现2


#include <iostream>using namespace std;int add(int num1,int num2){    int sum ,carry ;    sum = num1^num2;    carry = (num1&num2)<<1;    num1 = sum;    num2 = carry;    if(num2==0)        return num1;    add(num1,num2);}int main(){    int num1 = 555,num2 = 7;    int sum = add(num1,num2);    cout<<sum<<endl;    return 0;}



0 0