美文网首页
算法:两数乘积,不能用乘号和循环

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

作者: 大牛之路 | 来源:发表于2018-08-17 16:36 被阅读48次

算法

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

解法 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;
    
}

相关文章

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

    算法 给定两个数相乘,不能使用乘号或者循环 解法 1: 使用递归,a*b = a+a+a+...(b个a) 解法 ...

  • 数学知识NO.1

    两数的和一定,差越小,乘积越大。

  • java算法巩固训练day02

    乘积最大 给出一个n位数,在数字中间添加k个乘号,使得最终的乘积最大。 非记忆化版本!!! 记忆化搜索版本:定义d...

  • LC238-动态规划

    题目 题解 数字=左边数乘积*右边数乘积

  • 两数和一定求乘积最大值,如何转化成和一定

    欢迎关注公众号:沈阳奥数 我们都知道这样一个规律:如果两个数的和一定,那么越接近乘积越大,相等时乘积最大。如果两数...

  • 11.最多水的容器

    给定一个数组,寻找数组中的两数,使其较小的数和双数距离乘积(这就相当于两个板的容积)最大,并返回该乘积。 思路1:...

  • 欧拉计划4(最大回文乘积)

    题目 最大回文乘积 回文数就是从前往后和从后往前读都一样的数。由两个2位数相乘得到的最大回文乘积是 9009 = ...

  • 计算题

    两自然数之和是200,求这两个数乘积最大是多少? 口诀:和一定,差越小,乘积越大; 100➖100=0 100乘以...

  • 计算题

    两自然数之和是200,求这两个数乘积最大是多少? 口诀:和一定,差越小,乘积越大; 100➖100=0 100乘以...

  • Leetcode238除自身以外数组的乘积

    除自身以外数组的乘积 = 当前数左边所有数的乘积 * 当前数右边所有数的乘积

网友评论

      本文标题:算法:两数乘积,不能用乘号和循环

      本文链接:https://www.haomeiwen.com/subject/snrtiftx.html