【问题标题】:How to test if $a is divisible by $b when $b is larger than $a当 $b 大于 $a 时如何测试 $a 是否可以被 $b 整除
【发布时间】:2015-11-27 12:03:15
【问题描述】:

我正在尝试确定一个字符串 $a 是否可以被另一个字符串 $b 整除。

我能找到的所有示例都告诉我使用模数,例如:

if(($a %$b) == 0) : echo "Is dividible" ; endif;

但是,因为模数返回计算的余数,如果 $b 大于 $a,这将不起作用,因为仍然没有余数。

如何检查 $b 有时(但不总是)大于 $a 的可分性?

【问题讨论】:

  • if($a % $b == 0 || $b % $a == 0)?
  • 你的意思是如果 $a / $b 将返回一个整数结果(无余数).....如果 $b 大于 $a,它总是有余数`
  • 如果$b > $a 不起作用,你为什么不确保$b < $a 在该代码之前加上一些if?好吧,@Federico 有一个直接的答案。
  • 如果$b > $a 则余数为$a。你的公式是正确的。
  • 如果 $a 大于或等于 $b => 测试模数为零,否则 => 不可整除。

标签: php math division modulus


【解决方案1】:

你为什么不把它作为一个函数来做:

function isDivisible($smaller,$bigger){
    //handle division by zero, and hmm.. let's cover negative numbers too
    if($smaller<=0) return false;
    if($smaller>$bigger) return false;
    return !($bigger % $smaller);
}

否定! 应该是一种有效且优雅的处理方式。

【讨论】:

    【解决方案2】:

    怎么样:

    echo ( ($a < $b) && (($a % $b) == 0) ) ? "Is dividible" : "Is not divisable" ;
    

    【讨论】:

    • 如果 $b 大于 $b,你总是会得到一个分数。 “找出是否可以除以”到底是什么意思 你的意思是除法返回一个整数?如果是这样,那么您只需执行上述操作即可。如果您的意思是在极客中讲可分,那么除零之外的所有内容都可以除以零(除以零 - 错误)
    【解决方案3】:
    if($a==$b)
    {echo "divisible a and b are equal";
    }
    else if($a>$b){
       if(($a %$b) == 0) : echo "Is dividible" ; endif;    
    }
    else{
    echo "\$b is either large or equal to \$a";
     }    
    

    【讨论】:

      【解决方案4】:

      试试这个应该可以的:

      $a = 7;
      $b = 14;
      
      //echo ( ($a > $b) && ( ($a % $b) == 0) ) ? "is divisible":"no divisible";
      
      echo ( ($a < $b) && (($b % $a) == 0) ) ? "Is dividible" : "Is not divisable" ;
      

      【讨论】:

        【解决方案5】:

        您可以使用三元运算符作为下面给出的示例

        (($a%$b)==0)?echo "Is divisible": echo "not divisible";
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-19
          • 2014-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-01
          • 1970-01-01
          相关资源
          最近更新 更多