刚刚开始接触学习javaScript的小白一个,写这些东西只是为了当做笔记一样的东西,如果有哪些地方有不太对的,或者理解有问题的,希望各位大神指点,谢谢。
开始正文
js基础之一些比较经典的入门算法。。
1、求出1-1/2+1/3-1/4……+1/9-1/100的和。
var sum=0;
var index=1;
for(var i=1;i<=100;i++){
if(i%2==0){
sum+=-1/i;
}else{
sum+=1/i;
}
sum+=index/i;
index*=-1;
}
console.log(sum);
2、打印100~999之间的水仙花数水仙花数是一种特殊的三位数,它的特点就是,每个数位的立方和,等于它本身。比如 153 就是水仙花数。因为:
1* 1 *1 + 5 * 5 * 5+3 * 3 * 3=153
100~999 之内,只有 4 个水仙花数,请找出来。
for(var i=100;i<1000;i++){
var sum=0;
var g=i%10;
var s=parseInt(i/10)%10;
var b=parseInt(i/100);
sum=Math.pow(g,3)+Math.pow(s,3)+Math.pow(b,3);
if( sum == i ){
console.log( i+"是一个水仙花数");
}
}
3、求1!+2!+3!+…+20!的值
var fac=1;
var sum=0;
for( var i = 1;i< =20; i++){
fac*=i;
sum+=fac;
}
console.log(sum);
4、输入一个数 输出这个数的因数
function box(num){
for( var i=1;i<=num;i++){
if( num%i==0){
console.log(i);
}
}
}
box(num);
5、判断一个数是否是:素数 (质数):只能被1和其本身整除的数。
方案一:只有两个因子(计算因子的个数是否为2,如果是个数2,说明是素数)
function isPrime(num){
var count=0;
for( var i=1 ; i<=num ; i++){
if( num % i ==0){
count++;
}
}
if( count == 2){
console.log( num + " 是素数 ");
}else{
console.log( num + " 不是素数 ");
}
}
isPrime( num );
方案二: 因子之和 == 该数 + 1
function isPrime(num){
var sum = 0;
for (var i = 1; i <= num; i++) {
if(num % i == 0){
sum += i;
}
}
if(sum == num+1){
console.log(num + "是素数");
}else{
console.log(num + "不是素数");
}
}
isPrime(4);
方案三:通过一个开关变量控制该数是否是素数(这个是比较重要的一种方法)
function isPrime(num){
var flag = true;//表示这个数是一个素数
for (var i = 2; i < num; i++) {
if(num % i == 0){
flag = false;
break;
}
}
if(flag){
//是一个素数
alert(num + "是一个素数");
}else{
alert(num + "不是一个素数");
}
}
isPrime(sum);
方案三还可以简化成这样
function isPrime(num){
for (var i = 2; i < num; i++) {
if(num % i == 0){
return false;
}
}
return true;
}
6、输出:100可以拆成哪两个素数的和
for (var i = 2; i <= 50; i++) {
if(isPrime(i)){ //这里的isPrime就是调用之前我们的判断素数的那个函数了
if(isPrime(100-i)){
console.log(i + "和" + (100-i));
}
}
}
7、如果一个数恰好等于它的因数之和,则称该数为“完全数” perfect number。
//判断一个数是否是完全数
function isPerfectNum(num){
var sum = 0;
for (var i = 1; i < num; i++) {
if(num % i == 0){
sum += i;
}
}
if(sum == num){
return true;
}
return false;
}
//输出完全数
function geetAllPerfectNum(){
for (var i = 2; i <= 10000; i++) {
if(isPerfectNum(i)){
console.log(i);
}
}
}
geetAllPerfectNum();
8、3.编写一个函数 :实现计算任意一个数的各个 位数的和。
例如 : 234 位数和为 9。
function fn(m){
var sum=0;
while(m!=0){ //用while的话就不需要判断这个数的长度
sum+=(m%10);
m=parseInt(m/10);
}
return sum;
}
document.write(fn(123));
今天就先到这里吧,都是一些自己学习的时候整理的东西,有些方法看起来可能还不是那么简便,