检查一个数字是否能被 6 整除 PHP
我想检查一个数字是否可以被 6 整除,如果不能,我需要增加它直到它可以被 6 整除。
我该怎么办?
I want to check if a number is divisible by 6 and if not I need to increase it until it becomes divisible.
how can I do that ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
modulus 运算符给出除法的余数,所以 $number % 6 是除以 6 时剩下的金额。这比循环并不断重新检查要快。
如果减少是可以接受的,那么这甚至更快:
The modulus operator gives the remainder of the division, so $number % 6 is the amount left over when dividing by 6. This will be faster than doing a loop and continually rechecking.
If decreasing is acceptable then this is even faster:
能被 6 整除:
Make divisible by 6:
不需要 while 循环!模 (%) 返回除法的余数。 IE 20%6 = 2。6-2 = 4。20+4 = 24。24 可以被 6 整除。
no need for a while loop! Modulo (%) returns the remainder of a division. IE 20%6 = 2. 6-2 = 4. 20+4 = 24. 24 is divisible by 6.
那么你想要下一个 6 的倍数,是吗?
您可以将您的数字除以 6,然后
ceil
< /a> 它,并再次相乘:So you want the next multiple of 6, is that it?
You can divide your number by 6, then
ceil
it, and multiply it again:我看到其他一些答案调用了两次模数。
我的偏好是不要要求 php 多次执行相同的操作。因此,我缓存了其余部分。
其他开发人员可能更愿意不生成额外的全局变量,或者有其他理由使用两次模运算符。
代码:(演示)
可能的输出:
I see some of the other answers calling the modulo twice.
My preference is not to ask php to do the same thing more than once. For this reason, I cache the remainder.
Other devs may prefer to not generate the extra global variable or have other justifications for using modulo operator twice.
Code: (Demo)
Possible Output:
使用 Mod %(模数)运算符
Use the Mod % (modulus) operator
只需运行一个 while 循环,该循环将继续循环(并增加数字),直到数字可以被 6 整除。
Simply run a while loop that will continue to loop (and increase the number) until the number is divisible by 6.
假设
$foo
是一个整数:Assuming
$foo
is an integer:对于微优化怪胎:
更多的
%
评估,但更少的分支/循环。 :-PFor micro-optimisation freaks:
More evaluations of
%
, but less branching/looping. :-P为什么不使用模数运算符?
试试这个:
或者这就是你的意思?
Why don't you use the Modulus Operator?
Try this:
Or is this what you meant?