js 基礎演算法題(二)

2021-10-10 10:51:30 字數 2889 閱讀 4252

function

isprime

(num)

}// 否則返回true

return

true

}console.

log(

isprime(5

))// true

優化:假如 n 是合數,必然存在非 1 的兩個約數 p1 和 p2,其中 p1<=sqrt(n),p2>=sqrt(n)。由此我們可以改進上述方法優化迴圈次數。

function

isprime2

(num)

}return

true

}console.

log(

isprime2(4

))// false

遞迴寫法

function

fibonaqi

(n)console.

log(

fibonaqi(12

))

迴圈

function

fibonaqi2

(n)// 定義三個變數,前兩個開始的數和 sum

let sum =

0let x =

1let y =

1// 從第二個開始迴圈

for(

let i =

2; i < n; i++

)return temp

}console.

log(

fibonaqi2(12

))

方法 1:使用迴圈

function

greatestcommondivisor

(a, b)

}return res

}console.

log(

greatestcommondivisor(4

,8))

// 4

console.

log(

greatestcommondivisor(93

,31))

// 1

方法 2:使用遞迴

function

greatestcommondivisor2

(a, b)

return

greatestcommondivisor2

(b, a % b)

}console.

log(

greatestcommondivisor2(4

,8))

// 4

console.

log(

greatestcommondivisor2(93

,31))

// 1

function

sumfind

(arr, num)

}// 最後都沒有的話返回false

return

false

}console.

log(

sumfind([

6,4,

3,2,

1,7]

,11))

function

trim

(str)

console.

log(

trim

(' hello world '))

// hello world

function

getmostcount

(arr)

}return res

}let arr =[,

,,,,

]console.

log(

getmostcount

(arr)

)// 3

function

narcissusnumber

(n)// 分別取出個位、十位、百位

let ge = n %

10let shi =

parseint

((n /10)

%10)let bai =

parseint

(n /

100)

if(ge * ge * ge + shi * shi * shi + bai * bai * bai === n)

return

false

}for

(let i =

100; i <

1000

; i++

)}

function

getleapyear

(start, end)

}return arr

}console.

log(

getleapyear

(1900

,2100

))

function

fun()}

}}return arr.length

}console.

log(

fun(

))

function

fun(

)return sum

}console.

log(

fun(

))

歡迎大佬指正

js基礎演算法題。

陣列去重 檢查指定字元是否包含重複的數字字母,包含返回true,否則false。function repetition str repetition 111sss 返回true 包含了重複實現乙個函式,引數與返回值的關係如下 引數能同時被3與5整除,返回字串a 引數能同時被3整除的,返回字串b 引數...

js基礎演算法題

根據使用者輸入的年份,列印是否是閏年。思路 1 獲取使用者輸入的年份 let year parseint prompt 請輸入年份 if isnan year else else 湊錢1元,2元,5元湊20元錢有多少種可能,分別列印出來 let num1 一元的個數 let num2 二元的個數 l...

js演算法題

二叉樹排序 雙向鍊錶 1 將學生資訊輸入到乙個雙向鍊錶 2 按不同的方式對此雙向鍊錶排序 按學生成績排序 按學生姓名排序 3 正 逆向顯示該鍊錶內容 思路1,沒啥說的,新建乙個鍊錶首節點,乙個節點放乙個資料就ok了。有prev 和next 2,排序的問題,其實可以參考陣列的排序乙個道理。用冒泡,兩層...