算法:两数乘积,不能用乘号和循环

算法

给定两个数相乘,不能使用乘号或者循环

解法 1:

使用递归,a*b = a+a+a+...(b个a)

int mul(int a, int b){
    if (a == 0 || b == 0)
        return 0;
    if (b == 1)
        return a;
    if (a == 1)
        return b;
    return a + mul(a, b - 1);
}
int mult(int a,int b){
    int m = mul(a, abs(b));
    return (b<0)?(-m):m;
}

解法 2:

没说不能用除非呀,对不对!!!!

int mult2 (int a,int b){

    return b != 0 ? a/(1.0/b):0;
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天看了一部鬼片,鬼片的名字叫《寻梦环游记》。 电影中塑造的形象都是相当的骨感,因为都是骷髅嘛。而与此并不矛盾的是...
    esa72阅读 314评论 0 1
  • 蚀心者 “当女人爱时,男人当知畏惧!因为这时她牺牲一切!” 这是我目前为止最好的一本小说。没有之一。——辛夷坞 ﹥...
    张大大的小嘴巴阅读 374评论 0 2
  • 时值六月,夜幕降临,细雨淑淑,宛如不间断闪烁着苍白光芒的长长的细线。 由于雨水不断,天雷滚滚,原本热闹非凡...
    泠漠眼眸阅读 380评论 0 0
  • 最近,在学习Python的时候,在Windows下安装Pycharm的时候,发现Pycharm安装成功以后发现打不...
    MiyuShiroki阅读 2,415评论 0 1