面接試験の問題:jsは階乗を実現します.
4662 ワード
階乗の公式は次の通りです. n!=1*2*3*4***(n−2)*(n−1)*n
一つを入力します n, 階乗を実現します.コードは以下の通りです
方法1:再帰
方法二:while()
方法三: for ループ
考え方と while 同じように 徐々に相乗する考え.
一つを入力します n, 階乗を実現します.コードは以下の通りです
// html
<p>
:
<input type="text" id="input" placeholder=" n" />
p>
<button onclick="set()">buttonbutton>
<div class="result">
:<div id="result">div>
div>
方法1:再帰
function set(){ //
let n = document.getElementById('input').value
let res = this.math(n) //
document.getElementById('result').innerText = res
}
function math(n){ //
if(n < 0){
return -1
}else if(n === 0 || n === 1){
return 1
}else{
return n * this.math(n-1)
}
}
方法二:while()
function set(){
let n = document.getElementById('input').value
let res = n // n = n * (n-1) * (n-2) * ... * 2 * 1
if(n < 0){
res = -1
}else if(n === 0 || n === 1){
res = 1
}else{
while(n > 1){
n-- //
res *= n
}
}
document.getElementById('result').innerText = res
}
方法三: for ループ
考え方と while 同じように 徐々に相乗する考え.