在JavaScript中,可利用function語句、if語句配合“%”、“===”運(yùn)算符求兩個(gè)數(shù)的最大公約數(shù),語法為“function gcd(x,y){if(x%y===0){return y;}return gcd(y,x%y)}
”。
JavaScript怎么求兩個(gè)數(shù)的最大公約數(shù)
在JavaScript中,求兩個(gè)數(shù)的最大公約數(shù),
示例如下:
//功能:求最大公約數(shù) //參數(shù): x 、y number //返回值: number function gcd(x , y){ if(x % y === 0){ return y ; } return gcd(y , x % y) //三目運(yùn)算符寫法: //return x % y === 0 ? y : gcd(y , x % y) ; } var res = gcd(5 , 20) ; console.log(res) ; //5
其他的方法:
1、最大公約數(shù) — 循環(huán)求余數(shù)
//最大公約數(shù) --- 循環(huán)求余數(shù) //功能:兩個(gè)數(shù)的最大公約數(shù) //參數(shù):x,y number //返回值:最大公約數(shù) number function gcd(x , y){ //比較兩個(gè)數(shù)的大小,取較小的數(shù) var min = x < y ? x : y ; //從大到小循環(huán)找第一個(gè)公約數(shù) for(var i = min ; i >= 1 ; i--){ //判斷是否為公約數(shù) if(x % i == 0 && y % i == 0){ return i ; } } } var res = gcd(5 , 20); document.write(res) ; //5
2、最大公約數(shù) — 歐幾里得算法 – 遞歸實(shí)現(xiàn)
f方法:大數(shù)對(duì)小數(shù)求余,重復(fù)這個(gè)過程直到余數(shù)為 0
// 最大公約數(shù) --- 歐幾里得算法 -- 遞歸實(shí)現(xiàn) //遞歸:大數(shù)對(duì)小數(shù)求余,重復(fù)這個(gè)過程直到余數(shù)為 0 //功能:求最大公約數(shù) //參數(shù):m,n number //返回值: number function gcd(m , n){ //大數(shù)能否整除小數(shù) var max = m > n ? m : n ; var min = m < n ? m : n ; if(max % min == 0){ //如果能整除,小數(shù)就是最大公約數(shù) return min ; } else{ return f(min, max % min) ; } } var res = gcd(5 , 20) ; document.write(res) ; //5