首页 > php教程 > php手册 > 仅用自增自减运算实现加减乘除

仅用自增自减运算实现加减乘除

WBOY
发布: 2016-06-06 19:35:26
原创
1285 人浏览过

闲着无聊,突发奇想,可不可以不用“+-*/”来实现四则运算呢。折腾了一下,发现还是很多方法可以实现的,比如仅用自增自减运算来实现。不过由于自增自减是以1为基础单位运算的,所以这里参与运算的参数只考虑整数情况。首先是加法运算,定义一个函数add(),返

闲着无聊,突发奇想,可不可以不用 “+ - * /” 来实现四则运算呢。折腾了一下,发现还是很多方法可以实现的,比如仅用自增自减运算来实现。不过由于自增自减是以1为基础单位运算的,所以这里参与运算的参数只考虑整数情况。首先是加法运算,定义一个函数add(),返回两个参数的和。
//首先是加法运算,定义一个函数add(),返回两个参数的和,参数也可以是负数哦。

function add($a,$b){   
    while($b!=0){   
        if($b>0){   
            $b--;   
            $a++;   
        }else{   
            $b++;   
            $a--;   
        }   
    }   
    return $a;   
}   
echo add(11,12);  
//下面是减法运算,定义函数为sub()。和加法运算是逆运算,代码相似度高达99.9%。

function sub($a,$b){   
    while($b!=0){   
        if($b>0){   
            $b--;   
            $a--;   
        }else{   
            $b++;   
            $a++;   
        }   
    }   
    return $a;   
}   
echo sub(11,12);  
//然后是乘法运算,比加减运算复杂一点点,其实就是多次加法运算,代码如下:

function multi($a,$b){   
    $r = 0;   
    if($a==0 && $b==0)  return $r;   
    while($b!=0){   
        $i=0;   
        if($b>0){   
            $b--;          
            while($i!=$a){   
                if($a>0){   
                    $i++;   
                    $r++;   
                }else{   
                    $i--;   
                    $r--;   
                }   
            }   
        }else{   
            $b++;   
            while($i!=$a){   
                if($a>0){   
                    $i++;   
                    $r--;   
                }else{   
                    $i--;   
                    $r++;   
                }   
            }   
        }   
    }   
    return $r;   
}   
echo multi(11,12);  
//最后是除法运算,除法是乘法的逆运算,但是为了保证参数和运算结果都在整数范围内,我将除法的函数简化了参数范围。范围是正整数,并且第二个参数不能为0,参数最好是整除的。

function divis($a,$b){   
    if($a<0 || $b<=0 ) return 'error';   
    $r = 0;   
    while($a>0){   
        $i=0;   
        while($i!=$b){   
            $i++;   
            $a--;   
        }   
        if($a<0) break;//防止不整除的情况   
        $r++;   
    }   
    return $r;   
}   
echo divis(22,2);  
登录后复制
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板