C 计算器没有操作员

C++ calculator without operators

本文关键字:操作员 计算器      更新时间:2023-10-16

我需要制作一个可以 , - , *,/,%和 ^的C 计算器。我完全无法在代码中使用 , - , *,/和%。

#include<iostream>
using namespace std;
typedef long long ll;
ll add(ll a,ll b){ 
    if(b==0)return a;
    else return add(a^b,(a&b)<<1);
}
ll sub(ll a,ll b){ 
    if(b==0)return a;
    else return sub(a^b,((~a)&b)<<1);
}

这就是我所拥有的。我不知道如何编码乘法和部门部分。有帮助吗?

ll mul(ll a,ll b){ 
    if(b<0){
        b=add(~b,1);
        a=add(~a,1);
    }
    ll res=0;
    while(b>0){
        if(b&1)res=add(res,a);
        a<<=1;
        b>>=1;
    }
    return res;
}
ll div(ll a,ll b){
    ll c=0,op=0;
    if(a<0){
        a=add(~a,1);
        op^=1;
    }
    if(b<0){
        b=add(~b,1);
        op^=1;
    }
    if(b!=0){
        while(a>=b){
            a=sub(a,b);
            c=add(c,1);
        }
    }
    if(op)c=add(~c,1);
    return c;
}

遵循您的代码格式,希望此解决方案有所帮助!在这里,我使用添加和减去进行乘法和分裂,使用更多的位运算符(&amp; ,, ^,〜,&&&&&&&&&lt;,>>)。您也可以参考cplusplus.com了解有关它们的更多信息。因此,在这种情况下,您可以在乘法中看到,我将钻头向左移动,因此就像将其放置到The The The Place等。如果您需要进一步的澄清,请随时寻求帮助。:)