//分别使用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;j<i;j++){ if(i%j == 0){ a=false; } } if(a){ console.log(i); } } //打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方 //方法一 for(var a=1;a<=9;a++){ for(var b=0;b<=9;b++){ for(var c=0;c<=9;c++){ if(a*a*a + b*b*b + c*c*c == a*100 + b*10 + c){ var resule = a*100+b*10+c; console.log(resule); } } } } //方法二 for(var i=100;i<1000;i++){ var a = parseInt(i%10); var b = parseInt(i/10%10); var c = parseInt(i/100); if(a*a*a + b*b*b + c*c*c == i){ console.log(i); } } //求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM //方法一 var a = 16; var b = 44; var min = Math.min(a,b); var max = Math.max(a,b); //for循环求最大公约数 for(var i=min;i>0;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); } }