js中实现阶乘(多种方法)以及阶乘求和
source link: https://blog.51cto.com/u_14619976/5614163
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
js中实现阶乘(多种方法)以及阶乘求和
精选 原创wx5dd4a114ae67d 2022-08-23 23:03:17 博主文章分类:前端算法 ©著作权
文章标签 调用函数 文章分类 JavaScript 前端开发 阅读数213
<script>
function factorialize(num) {
if(num==0){
return 1;
}else{
for (var i = num; i >1; i--) {
num*=(i-1);
return num;
factorialize(3);/* 这行表示调用函数 */
console.log(factorialize(3)) /* 这个表示输出调用的函数,并且打印出return 返回的值输出到控制台*/
</script>
JS实现阶乘的四种方法
1、递归函数
Js代码:
var str="递归函数实现10的阶乘";
document.write("<h2>"+str+"</h2><hr>");
var n=10; //var n=Number(prompt("请输入一个数"));
function jieCheng(n){ //递归函数求阶乘
var jc=1;
if(n<=1){
return jc;
}else{
/*return n*jiecheng(n-1);*/
jc=n*arguments.callee(n-1);
}
return jc;
}
var sum=0;
for(var i=1;i<=n;i++){
sum+=jieCheng(i);//调用函数求阶乘,然后用sum存储它们的和
document.write(i+"的阶乘等于:"+jieCheng(i)+"<br>");//每个数的阶乘
}
document.write("1~"+n+"的阶乘之和等于:"+sum);
2、for循环
Js代码:
var str="for循环实现10的阶乘";
document.write("<h2>"+str+"</h2><hr>");
var s=0;
for(var n=1;n<=10;n++){
function sum(n){
if(n<=1){
return 1
}else{
/*return n*sum(n-1);*/
return n*arguments.callee(n-1)
}
}
var result=sum(n);
document.write(n+"的阶乘等于:"+result+"<br>");
s+=result;
}
n=n-1;
document.write("1~"+n+"的阶乘之和等于:"+s);
3、while循环
Js代码:
var str="while循环实现10的阶乘";
document.write("<h2>"+str+"</h2><hr>");
var n=1;
var s=0;
while(n<=10){
function sum(n){
if(n<=1){
return 1
}else{
/*return n*sum(n-1);*/
return n*arguments.callee(n-1)
}
}
var result=sum(n);
// console.log(result);
document.write(n+"的阶乘等于:"+result+"<br>");
n+=1;
s+=result;
}
n=n-1;
document.write("1~"+n+"的阶乘等于:"+s);
4、do-while循环
Js代码:
var str="do-while循环实现10的阶乘";
document.write("<h2>"+str+"</h2><hr>");
var n=1;
var s=0;
do{
function sum(n){
if(n<=1){
return 1
}else{
/*return n*sum(n-1);*/
return n*arguments.callee(n-1)
}
}
var result=sum(n);
// console.log(result);
document.write(n+"的阶乘等于:"+result+"<br>");
n+=1;
s+=result;
}while(n<=10)
n=n-1;
document.write("1~"+n+"的阶乘等于:"+s);
- 赞
- 收藏
- 评论
- 分享
- 举报
上一篇:数组中排序元素的方式
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK