基本js一些出过错的案例

1.任意输入一个正整数,判断这个数的位数?

var num = parseInt(prompt("请输入一个数"));

                var sum = 0;

                while (num>0){

                    sum =sum+1;

                    num = parseInt(num/10);

                }

                alert(sum);

2.编写函数,功能是将三个数按照从小到大顺序输出

function pai(a,b,c){

             var temp;

             if(a>b){

                 temp=a;

                 a=b;

                 b=temp;

             }

             if(a>c){

                 temp=a;

                 a=c;

                 c=temp;

             }

             if(b>c){

                 temp=b;

                 b=c;

                c=temp;

             }

             console.log(a,b,c);

         }

         pai(6,7,4);

.3输出:100可以拆成哪两个素数的和

    function isPrimeNumber(num){

        //是素数返回true,否则返回false

        for (var i = 2; i < num; i++) {

            if(num%i == 0){

                return false;

            }

        }

        return true;

function box(){

        for (var i = 1; i < 50; i++) {

            if(isPrimeNumber(i)){//调用判断是否是素数的函数

                //console.log(i);

                var s2 = 100-i;

                if(isPrimeNumber(s2)){

                    console.log(s2,i);

                }

            }

        }

    }

    box();

4.函数实现:输出1—3之间能组成的奇数个数,并输出这些数

  要求 : 组成的数是一个两位数,个位数!=十位数

  组成: 13  21   23  31  共4个

  1 2 3

  1 2 3

function box(){

        for (var i = 1; i <= 3; i++) {

            for (var j = 1; j <= 3; j++) {

                if(i!=j){

                    var str = ""+i+j;

                    //console.log(str);

                    if(str%2 == 1){

                        console.log(str);

                    }

                }

            }

        }

    }

    box();

.函数的递归调用案例

     1.用函数实现一个数的循环,输出100到1;

function box(a){

        if(a==0){

            return;

        }

        console.log(a);

        a--;

        box(a);

    }

    box(100)

2.普通函数实现带返回值的从1-100累加的和;

     function box(a){

          if(a==0){

              return 0;

          }

          return a+box(a-1);

     }

     alert(box(100));

     3.递归实现1--100以内所有偶数的和

     function box(a){

          if(a==0){

              return 0;

          }

          if(a%2==0){

              return a+box(a-2);

          }

     }

     alert(box(100));

      4.递归实现一个数的阶乘

     function box(a){

          if(a==1){

              return 1;

          }

          return a*box(a-1);

     }

     alert(box(5));

5.递归实现斐波那契数列的第n项

//  1 1 2 3 5 8 13 21 34....

// 第一项是0  第二项是1    后面每一项是前面两项的和

F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

function box(a){

          if(a==1){

              return 1;

          }

          if(a==2){

              return 1;

          }

          if(a>2){

              return box(a-1)+box(a-2);

          }

     }

     alert(box(4));

1,如果一个数恰好等于它的真因数之和(就是不包括本身),则称该数为“完全数” perfect number。请列出2~10000的所有完全数

   第一种:function num(){

     for(var i=2;i<=10000;i++){

          var sum=0;

          for(var j=1;j<i;j++){

               if(i%j==0){

                    sum=sum+j;

               }

          }

          if(sum==i){

               console.log(i);

          }

     }

    }

    num();

第二种:

//1.求一个数的所有真因数的和

    

    /*function isPerfectNumAdd(num){

        var sum = 0;

        for (var i = 1; i < num; i++) {

            if(num%i == 0){

                sum += i;

            }

        }

        return sum;

    }*/

    //2.通过一个数的所有真因数的和来与当前这个数对比,如果相等说明这个数是一个完全数。

    //alert(isPerfectNumAdd(7));

    /*function getPerfectNum(){

        for (var i = 2; i <= 10000; i++) {

            if(isPerfectNumAdd(i) == i){

                console.log(i)

            }

        }

    }

    getPerfectNum();

第三种:函数递归调用

function getPerfectNum(num){

        if(num==10001){

            return;

        }

        var sum = 0;

        for (var i = 1; i < num; i++) {

            if(num%i == 0){

                sum += i;

            }

        }

        if(sum == num){

            console.log(num);

        }

        return getPerfectNum(num+1);

    }

    getPerfectNum(2);

 3,编写一个函数 :实现计算任意一个数的各个位数的和

    //例如 :  234  位数和为  9

var num=parseInt(prompt("请输入一个数"));

function fnSum(num){

        var sum = 0;

        while( num >0 ){

            sum += num % 10; //取出个位数

            num = parseInt( num/10 );

        }

        return sum;

    }

    var s = fnSum();

    alert(s);

猜你喜欢

转载自blog.csdn.net/qq_38068491/article/details/82876039