美文网首页
Swift-整数的减法,乘法和除法

Swift-整数的减法,乘法和除法

作者: FlyElephant | 来源:发表于2017-05-29 00:36 被阅读1380次

    题目:实现整数的减法,乘法和除法,只允许使用加法.

    减法

    减法是加法的另外一种形式,减法通过取反可以变成加法.
    <pre><code>` func negate(a:Int) -> Int {

        var num:Int = a
        var result:Int = 0
        
        let base:Int = num < 0 ? 1 : -1
        
        while num != 0 {
            result += base
            num += base
        }
        
        return result
    }
    
    func minus(a:Int,b:Int) -> Int {
        return a + negate(a: b)
    }`</code></pre>
    

    乘法

    乘法是加法的另外的一种形式,数字重复相加的结果就是乘法.
    <pre><code>` func multiply(a:Int,b:Int) -> Int {

        if a < b {
            return multiply(a:b,b:a)
        }
        
        var sum:Int = 0
        
        for _ in  0..<abs(a: b) {
            sum += a
        }
        
        if b < 0 {
            sum = negate(a: sum)
        }
        
        return sum
    }
    
    func abs(a:Int) -> Int {
        if a < 0 {
            return negate(a:a)
        } else {
            return a
        }
    }`</code></pre>
    

    除法

    通过加法来实现除法是没法做到保留到小数位,只能保留到整数.
    <pre><code>` func divide(a:Int,b:Int) -> Int? {

        if b == 0 {
            return nil
        }
        
        let numA:Int = abs(a: a)
        let numB:Int = abs(a: b)
        
        var result:Int = 0
        var num:Int = 0
        
        while (numB + num) < numA {
            num += numB
            result += 1
        }
        
        if (a > 0 && b > 0) || (a < 0 && b < 0) {
            return result
        } else {
            return negate(a: result)
        }
        
    }`</code></pre>
    

    测试代码:
    <pre><code>`var operatorNum:Operator = Operator()
    var minusNUm:Int = operatorNum.minus(a: 20, b: 10)
    print("FlyElephant---减法结果:(minusNUm)")

    var multiNum:Int = operatorNum.multiply(a: 10, b: -4)
    print("FlyElephant---乘法结果:(multiNum)")

    var divideNum:Int? = operatorNum.divide(a: 10, b: -3)
    print("FlyElephant---除法结果:(divideNum!)")`</code></pre>

    FlyElephant.png

    相关文章

      网友评论

          本文标题:Swift-整数的减法,乘法和除法

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