好的,我有以下 HTML 源代码:
<form method="post" action="/" id="search">
<input list="animals" name="animal">
<datalist id="animals">
<option label="Alaskan Malamute" data-id="d8c" value="Dog">
<option label="Siberian Husky" data-id="w30" value="Dog">
<option label="Aegean" data-id="rxx" value="Cat">
</datalist>
</form>
Run Code Online (Sandbox Code Playgroud)
和 JS
function doKeyUp(e) {
if (e.preventDefault) e.preventDefault();
if(e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40 ) {return;}
var input = document.getElementById("animal");
var search_after = input.value.trim();
var form = document.getElementsByTagName("form")[0];
var datalist = document.getElementsByTagName('datalist')[0];
if (search_after.length >= 2) {
if (e.keyCode == 13 && search_after.length …Run Code Online (Sandbox Code Playgroud) 我写了这个函数来返回给定数字的阶乘
func factorial(_ n: Int) -> Int {
if n == 0 {
return 1
}
else {
return n * factorial(n - 1)
}
}
print( factorial(20) ) // 2432902008176640000
Run Code Online (Sandbox Code Playgroud)
只要给定的数字不超过20,就可以正常工作,因为那样结果会变得太高?
我如何规避这个限制,从而计算出更高数字的阶乘?
我已经四处搜索并找到了Swift的一些bignum库,我这样做是为了学习并熟悉Swift,因此我想自己解决这个问题.