JS 简单算法
Posted lidyfamily
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 简单算法相关的知识,希望对你有一定的参考价值。
//分别使用while/do-while/for循环实现10的阶乘(使用递归算法) //do-while循环实现10的阶乘 var i=1; var resule=1; do resule *= i; i++; while(i<=10); console.log(resule); //while循环实现10的阶乘 var resule=1; var i=1; while(i<=10) resule *= i; i++; console.log(resule); //for循环实现10的阶乘 var resule=1; for(var i=1;i<=10;i++) resule *= i; console.log(resule); //构造阶乘函数 function test(i) if(i<1) return 1; else return test(i-1)*i; var resule = test(10); console.log(resule); //有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? //方法一 for(var i=1;i<=4;i++) var a=true; for(var j=1;j<=4;j++) for(var k=1;k<=4;k++) if(i==j || i==k || j==k) a=false; else console.log(i*100+j*10+k); //方法二 for(var i=1;i<=4;i++) for(var j=1;j<=4;j++) for(var k=1;k<=4;k++) if(i != j && i != k && j != k) var resule = i*100+j*10+k; console.log(resule); //判断101-200之间有多少个素数,并输出所有素数(只能被1和它本身整除的自然数为素数) for(i=101;i<200;i++) var a=true; for(j=2;j0;i--) if(a%i == 0 && b%i == 0) console.log(i); break; //for循环求最小公倍数 for(var i=max;i<=a*b;i++) if(i%a == 0 && i%b == 0) console.log(i); break; //方法二 var a = 15; var b = 5; if(a>b) min = b; max = a; else min = a; max = b; console.log(min); console.log(max); // while循环求最大公约数 var i=min; while(i>0) if(a%i == 0 && b%i == 0) console.log(i); break; i--; //while循环求最小公倍数 var j=max; while(j<=a*b) if(j%a == 0 && j%b == 0) console.log(j); break; j++; //求1000以内的完全数(若一个自然数,恰好与除去它本身以外的一切因数的和相等,这种数叫做完全数。) for(var i=2;i<=1000;i++) var sum = 1; for(var j=2;j<=i/2;j++) if(i%j == 0) sum += j; if(sum == i) console.log(i);以上是关于JS 简单算法的主要内容,如果未能解决你的问题,请参考以下文章