PHP中如何用判断循环的方式获取最大公因数
Admin 2022-08-27 群英技术资讯 981 次浏览
今天小编跟大家讲解下有关“PHP中如何用判断循环的方式获取最大公因数”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。我们是将两个整数的所有因数分别放在两个数组中,然后使用array_intersect()函数求这两个数组的交集,就可得到一个包含全部公因数的数组;再使用max()函数计算交集数组中最大数,就获取最大公因数。
是不是有点麻烦,还要先一个个求出所有因数,然后计算出所有公因数,最后才能求出最大公约数。下面介绍一个简单通用的方法(可以用在其他语言中)。
这次我们不使用PHP内置函数,就利用if判断语句和while循环语句来求给定两个整数间的最大公约数。
实现步骤:有两个变量a,b
第一步:要确保大数放a中、小数放b中。
这就需要使用if语句来判断,如果 a < b,就定义一个中间变量temp,实现 a与b值的交换
if ($a < $b) { //a < b,则交换两个数
$temp = $a;
$a = $b;
$b = $temp;
}
第二步:求 a/b 的余数,值赋给 r
$r = $a % $b;
第三步:判断 余数r 是否为0。
如果 r=0,则上面的b就是最大公约数;如果 r!=0,就需要把b的值赋给a,r的值赋给b,继续求 a/b 的余数,判断 余数r 是否为0。这就需要利用到循环(这里使用while循环):
while ($r != 0) {
$a = $b;
$b = $r;
$r = $a % $b;
}
第四步:就是输出最大公因数b。
下面看看实现代码:
<?php
header("Content-type:text/html;charset=utf-8");
function gcd($a, $b) {
$a1 = $a;
$b1 = $b;
if ($a < $b)//a < b,则交换两个数
{
$temp = $a;
$a = $b;
$b = $temp;
}
$r = $a % $b;
while ($r != 0) {
$a = $b;
$b = $r;
$r = $a % $b;
}
echo "数$a1 和$b1 的最大公因数为: $b <br><br>";
}
gcd(30, 40);
gcd(12, 16);
gcd(15, 12);
?>输出结果:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
swoole高效的原因:1、常驻内存,避免重复加载带来的性能损耗,提升海量性能。2、协程异步,提高对I/O密集型场景并发处理能力。3、方便地开发Http、WebSocket、TCP、UDP等应用,可以与硬件通信。
文本主要分享的是关于php函数内的静态变量使用问题,介绍了php 函数中静态变量使用要注意的问题以及使用技巧,对于新手学习PHP有一定的参考价值,下面我们就一起学习下吧。
现在的开发变得多种多样,除了静态还有动态,当我们要实现魔术变量的用户,一定不能让他们有相互影响的情况发生,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
PHP中的运算符分为:算术运算符、递增/递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符等。本章节我们将讨论 PHP 中不同运算符的应用。
php laravel框架自带命令的实现:1、作为服务提供者加载到程序中,laravel自带的artisan命令;2、然后找到 Up/Down命令入口;3、DownCommand实现,关键在当前存储目录/framework 下面创建。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008