<script>
/* 核心区域 ………………………………*/
var n = parseInt(prompt('你好,请输入您预期求的阶乘值!!'));
//此句用以判断输入是否为空和输入是否为空格
// Number(num)==0用来判断输入是否为空;
// isNaN(parseInt(num))判断输入是否为空格,此句为true
var flag = false;
var sum = ''
// 利用while语句去重复一下代码
while (!flag) {
if (Number(n) == 0 && isNaN(parseInt(n))) {
alert('你输入为空格或为空请重新输入');
flag = false;
} else if (isNaN(n)) {
alert('您输入的为非数字,请重新输入');
flag = false;
} else {
document.write(n + '的阶乘为:' + diGui(n) + '</br>');
var t = numberExpression(n);
document.write('阶乘计算表达为:' + t + diGui(n));
flag = true;
}
}
// 阶乘函数
function diGui(n) {
if (n == 1) {
return 1;
} else {
return n * diGui(n - 1);
}
}
// 对算数表达式进行总结的函数
function numberExpression(numberTest) {
//实现函数封装可重复调用
var expression = '';
for (var i = 1; i <= numberTest; i++) {
if (i == numberTest) {
// expression为计算表达式的写法
expression += i + "=";
} else {
expression += i + '*';
}
}
return expression;
}
</script>