Javascript'太多的递归'关于一个简单的阶乘函数
Javascript 'too much recursion' on a simple factorial function
我在这里讨论了几个"太多递归"的问题和答案,但每个问题都解决了一个特定的问题,但我无法从中推断出正确的答案来回答这个代码错误,如何解决它,以及我为什么会出现这个错误:
<body>
<input type="number" id="num">
<input type="button" id="submit" onclick="factor()"><br>
<div id="yourResult"></div>
<script>
inputValue = document.getElementById('num').val;
function factor(n){
if(n==0){
return 1;
}
if(n==1){
return 1;
}
return n * factor(n-1);
}
function result() {
$('yourResult').append('<p>your factorial of ' + inputValue + ' equals to: ' + factor()+'</p>');
}
</script>
</body>
您需要传递参数值。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<input type="number" id="num">
<input type="button" id="submit" value="Get Factorial" onclick="result()"><br>
<div id="yourResult"></div>
<script>
function factor(n){
if(n==0){
return 1;
}
if(n==1){
return 1;
}
return n * factor(n-1);
}
function result() {
inputValue = document.getElementById('num').value;
$('#yourResult').append('<p>your factorial of ' + inputValue + ' equals to: ' + factor(inputValue)+'</p>');
}
</script>
</body>
Hey@clusterBuddy使其正确document.getElementById('num').val
到document.getElementById('num').value
并尝试下面的代码给出阶乘结果:
<script type="text/javascript">
function factor(){
var n=document.getElementById("num").value;
var factorial = function(n) {
if(n == 0) {
return 1
} else {
return n * factorial(n - 1);
}
}
document.getElementById("yourResult").innerHTML ="your factorial is"+factorial(n);
}
</script>
<body>
<input type="text" id="num">
<input type="button" id="submit" value="submit" onclick="factor()"><br>
<span id="yourResult"></span>
</body>
这个功能可以更容易:
function factor(n) {return !!+n && (n <= 1 ? n : n * factor(--n))}
相关文章:
- 你能解释一下这个阶乘函数是如何工作的吗?
- 计算阶乘超过了Javascript中的最大整数限制
- 使用 .reduce() 对数字进行阶乘化
- 使用 VBScript 函数的阶乘
- JavaScript 中的阶乘.不行
- 递归函数 - 计数如何存储在此阶乘解决方案中
- JavaScript 阶乘递归
- 阶乘的最小有效非零位
- 如何阶乘只有 5 个数字
- Javascript,阶乘,太难了
- 通过用户提示查找数字的阶乘
- 如何在JavaScript中获取数字的阶乘
- Javascript函数计算整数的阶乘
- JavaScript的阶乘函数每次都返回0
- 阶乘函数运行错误:超过了最大调用堆栈大小
- 如何创建计算6阶乘的for循环
- 如何解释这个阶乘程序中的递归
- 如何在javascript中找到25的阶乘
- 阶乘. .我不知道为什么这个代码可以工作
- Javascript'太多的递归'关于一个简单的阶乘函数