欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

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

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

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

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

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

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

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

          if ($a < $b) { //a < b,則交換兩個數(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,則交換兩個數(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)擊這個哦?!?→php視頻教程

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

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