亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    PHP循環(huán)學(xué)習(xí)九:獲取給定兩數(shù)間的最大公因數(shù)

    在上一篇文章中《PHP數(shù)組學(xué)習(xí)之返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)》,我們中我們介紹了一種獲取兩個(gè)整數(shù)的全部公因數(shù),求最大公約數(shù)的方法。這次我們來再給大家介紹一種求最大公約數(shù)的方法,感興趣的朋友可以學(xué)習(xí)了解一下~

    上一篇文章中,我們是將兩個(gè)整數(shù)的所有因數(shù)分別放在兩個(gè)數(shù)組中,然后使用array_intersect()函數(shù)求這兩個(gè)數(shù)組的交集,就可得到一個(gè)包含全部公因數(shù)的數(shù)組;再使用max()函數(shù)計(jì)算交集數(shù)組中最大數(shù),就獲取最大公因數(shù)。

    是不是有點(diǎn)麻煩,還要先一個(gè)個(gè)求出所有因數(shù),然后計(jì)算出所有公因數(shù),最后才能求出最大公約數(shù)。下面介紹一個(gè)簡單通用的方法(可以用在其他語言中)。

    這次我們不使用PHP內(nèi)置函數(shù),就利用if判斷語句和while循環(huán)語句來求給定兩個(gè)整數(shù)間的最大公約數(shù)。

    實(shí)現(xiàn)步驟:有兩個(gè)變量a,b

    • 第一步:要確保大數(shù)放a中、小數(shù)放b中。

      這就需要使用if語句來判斷,如果 a < b,就定義一個(gè)中間變量temp,實(shí)現(xiàn) a與b值的交換

    if ($a < $b) { //a < b,則交換兩個(gè)數(shù) 	$temp = $a; 	$a = $b; 	$b = $temp; }
    • 第二步:求 a/b 的余數(shù),值賦給 r

    $r = $a % $b;
    • 第三步:判斷 余數(shù)r 是否為0。

      如果 r=0,則上面的b就是最大公約數(shù);如果 r!=0,就需要把b的值賦給a,r的值賦給b,繼續(xù)求 a/b 的余數(shù),判斷 余數(shù)r 是否為0。這就需要利用到循環(huán)(這里使用while循環(huán)):

    while ($r != 0) { 		$a = $b; 		$b = $r; 		$r = $a % $b; 	}
    • 第四步:就是輸出最大公因數(shù)b。

    下面看看實(shí)現(xiàn)代碼:

    <?php header("Content-type:text/html;charset=utf-8"); function gcd($a, $b) { 	$a1 = $a; 	$b1 = $b; 	if ($a < $b)//a < b,則交換兩個(gè)數(shù) 	{ 		$temp = $a; 		$a = $b; 		$b = $temp; 	}  	$r = $a % $b; 	while ($r != 0) { 		$a = $b; 		$b = $r; 		$r = $a % $b; 	} 	echo "數(shù)$a1 和$b1 的最大公因數(shù)為: $b  <br><br>"; }  gcd(30, 40); gcd(12, 16); gcd(15, 12); ?>

    輸出結(jié)果:

    PHP循環(huán)學(xué)習(xí)九:獲取給定兩數(shù)間的最大公因數(shù)

    好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程

    推薦:《PHP面試題大匯總(收藏)》

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)