请用js编写一个程序,输入一个整数n可以计算从1的阶乘到n的阶乘的和

JavaScript011

请用js编写一个程序,输入一个整数n可以计算从1的阶乘到n的阶乘的和,第1张

while(true){

    var obj = prompt("输入一个整数:","")

    if(/^\+?\d+$/.test(obj)){

        var sum = 0

        for(var i = 1 i <= obj i++){

            var x = 1

            for(var j = 1 j <= i j++){

                x *= j

            }

            sum += x

        }

        alert("1的阶乘到"+obj+"的阶乘的和: " + sum)

        break

    }else{

        continue

    }

}

假设用户是输入到一个文本框吧,文本框在myform表单中,name为text.

还有一个按钮,用户点击它的时候会出来结果,用一个消息框显示:

<script language="javascript">

function myresult(){//定义一个函数

var result=0//用来保存求得的和,

if(isNaN(document.myform.text.value)){ //isNaN()用来判断用户的输入是否是一个整数

alert("您输入的不是一个整数,请重新输入")

document.myform.text.focus()//定位光标到文本框

document.myform.text.select()//使框中内容被选中

}else{

//利用parseInt()方法将文本框中的内容转换为一个数字,如果输入的是“23a2”,那这个方法的结果就是“23”

var num=parseInt(document.myform.text.value)

result=num*(num+1)/2 //利用数列的求和公式

}

alert("所得的结果是: "+result)//用消息框显示结果

}

}

</script>

这个是JS程序,我做了异常处理,也就是说用户如果输入的不是整数要提醒用户,下面我弄的全部代码:

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title>求和</title>

<script language="javascript">

function myresult(){//定义一个函数

var result=0//用来保存求得的和,

if(isNaN(document.myform.text.value)){ //isNaN()用来判断用户的输入是否是一个整数

alert("您输入的不是一个整数,请重新输入")

document.myform.text.focus()//定位光标到文本框

document.myform.text.select()//使框中内容被选中

}else{

//利用parseInt()方法将文本框中的内容转换为一个数字,如果输入的是“23a2”,那这个方法的结果就是“23”

var num=parseInt(document.myform.text.value)

result=num*(num+1)/2 //利用数列的求和公式

}

alert("所得的结果是: "+result)//用消息框显示结果

}

}

</script>

</head>

<body>

<form name="myform" method="post" action="#">

<p>请在这里输入一个整数:

<input name="text" type="text" id="text" height=20px width=130px>

</p>

<p>

<input name="btnadd" type="button" value="确定" onClick="myresult()">

</p>

</form>

</body>

</html>

有不明白的地方接着问。

听了那个人的我又试了试我原来用的循环,输入一个八位的还行,十几位就不行了,改了之后输入一个二十位的也没事了,就是结果大点