您的位置:首页 > Web前端 > HTML5

h5 哥德巴赫猜想验证、函数和数组、函数的调用、形参与实参、参数的传递

2017-11-20 18:19 323 查看
作业:验证8-10000以内的数字是否满足哥德巴赫猜想。(哥德巴赫猜想:任何一个大于6的偶数都可以拆分为两个素数的和。)

//哥德巴赫猜想:任何一个大于6的偶数都可以拆分为两个素数的和

 var isGDBH=false;
for (var
i
=8;
i<10000;i+=2)
{//遍历8-10000的所有偶数,去判断每一个偶数是两个素数的和

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

             var k=i-j;

             var isPrime1=true;

        for(var
num1
=2;num1<j;num1++)
{//判断j是不是素数

            if (j%num1==0)
{

                var isPrime1=false;

            }

        }

             var isPrime2=true;

        for(var
num2
=2;num2<k;num2++){

           if(k%num2==0){

               var isPrime2=false;

           }

       }

             if(isPrime1
&& isPrime2){

                 var isGDBH=true;

                 break;

             }else{

                 continue;

             }

            }

    if(isGDBH){

        document.write(i+"满足哥德巴赫猜想"+j+"+"+k+"</br>");

    }else{

        document.write(i+"不满足哥德巴赫猜想"+"</br>");

    }

         }

 

 

4 函数和数组
函数的功能

函数的名字

函数的参数

函数的返回值

例:输出100以内的素数:

方法一:循环的嵌套

for( var
j
=2;j<100;j++){

    var isPrime=true;

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

        if (j
% i ==0) {

            varisPrime
= false;

            break;

        }

    }

    if (isPrime) {

      document.write(i+" ");

    }

}

方法二:函数法

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

    if(isPrime(num)){

       document.write(num+"是素数</br>");

    }

}

 /*

 *函数的功能:判断一个数是不是素数

 * 函数的名字:isprime

 * 函数的参数:一个待判断的数

 * 函数的返回值:true/false

  */

 function isPrime(num){

     var flag=true;

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

         if (num%i==0) {

             varflag
= false;

             break;

         }

     }

     return flag

 }

这种解决问题的方法可以将复杂的问题简单化。用量化处理大的问题。如果你遇到了问题,可以一直这样分解下去直到你认为简单为止。

定义和用法

定义:

关键字 function+函数的名字isprime(+函数的参数num){

。。。

返回的结果

}

 

Funtion isprime(num){



Return…

}

Isprime就是函数的名字

Num叫做形参

Return就是返回结果

注意:设计比实现更重要。在后面的抽象函数中要求写上函数的设计

函数的调用:

函数只有调用了之后才会运行

函数名+要传递的参数

Isprime(2)

2就是实参

//哥德巴赫猜想:任何一个大于6的偶数都可以拆分为两个素数的和
for (var
i
=8;
i<10000;i+=2){//遍历8-10000的所有偶数,去判断每一个偶数是两个素数的和

    if (isGDBH(i)) {

        document.write(i
+"满足哥德巴赫猜想" 
+ "</br>");

    } else {

        document.write(i
+"不满足哥德巴赫猜想"
+ "</br>");

    }

}

    function isPrime(n){

        var isPrime=true;

        for (var
j = 2;
j< n; j++) {

            if(n %
j == 0) {

                var isPrime
= false;

                break;

            }

        }

        returnisPrime;

    }

    function isGDBH(num){

        var flag=false;

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

            vark=num-i;

            if(isPrime(i) &&
isPrime(k)) {

                var flag
= true;

                break;

            } else{

                continue;

            }

        }

        returnflag;

    }

设计并实现一个函数验证角股定理

任意一个数如果是偶数将他除以二,如果为奇数就乘以3+1,最终一点能得到1.

,验证100以内是否都满足角谷定理。

function isjgdl(i) {

    while (i!=1) {

        if (i%
2 == 0) {

            vari= i /
2;

            document.write(i*2+"="+i*2+"/2="+i+"</br>");

        } else{

            vari=
3 *i + 1;

            document.write((i-1)/3+"="+(i-1)/3+"*3+1="+i+"</br>");

        }

    }

    returntrue;

}
for(var
num
=1;num<100;num++)
{

    if (isjgdl(num)) {

        document.write(num+"满足角谷定理");

    }

}

 

函数满足高内聚、低耦合。一个函数最好就实现一个功能。

例:设计并实现一个函数,实现对一个三位数个位进行重新排列得到最大值

function getmax(num) {

    var a
= Math.floor(num /
100);

    var b
= Math.floor(num /
10) % 10;

    var c=num%10;

    var max
= Math.max(a,
b, c);

    var min
= Math.min(a,
b, c);

    var middle
= Middle(a,b,c);

    var res
= max * 100
+ middle * 10
+ min;

    return res;

}
function Middle(a,b,c) {

    if (a= Math.max(a,b, c)) {

        returnMath.max(b,c);

    } else {

        if (b= Math.max(a,b, c)) {

            returnMath.max(a,c);

        } else{

            if(c = Math.max(a, b, c)) {

                return Math.max(a, b);

            }

        }

    }

}

var num=Number(prompt("输入任意一个三位数"));

    alert(getmax(num));

 

函数就是一个数据加工黑盒子。也叫做实现某个独立功能的代码段。要忽略细节问题。我们只关心返回的结果,并不关心具体的步骤。

参数的传递

传递的方式有两种,值传递和引用传递。

值传递:

var a=2;
function changeA(a){

    var a=3;

}
changeA(a);
alert(a)                    //2

引用传递:

var a={

    value:2
};
function changeA(b){

    b.value++;

};
changeA(a);
alert(a.value);              //3

引用传递有什么作用?

在函数设计的时候,只能返回一个结果,但是有时需要同时返回多个结果。

这个时候可以用对象。在函数的外面定义一个对象,然后在函数里面去改变这个对象的值。最终这个结果在函数执行之后,返回到原来的对象当中。

作业:设计并实现一个函数,将一个四位数进行重新排列同时得到最大值和最小值。

function getmax(num) {

    var a
= Math.floor(num /
1000);//千位

    var b
= Math.floor(num /
100) %10;//百位

    var c=Math.floor(num /
10) % 10;//十位

    var d=num%10;//个位

    var max
= Math.max(a,
b, c,d);

    var min
= Math.min(a,
b, c,d);

    var middle1
= Middle1(a,b,c,d);

    var middle2
= Middle2(a,b,c,d);

    var res
= max*1000+middle1*100+middle2*10+min;

    return res;

}
function getmin(num) {

    var a
= Math.floor(num /
1000);//千位

    var b
= Math.floor(num /
100) %10;//百位

    var c=Math.floor(num /10) %
10;//十位

    var d=num%10;//个位

    var max
= Math.max(a,
b, c,d);

    var min
= Math.min(a,
b, c,d);

    var middle1
= Middle1(a,b,c,d);

    var middle2
= Middle2(a,b,c,d);

    var res
= min*1000+middle2*100+middle1*10+max;

    return res;

}
function Middle1(a,b,c,d) {

    if (a==Math.max(a,b, c,d)) {

        returnMath.max(b,c,d);

    } else {

        if (b==Math.max(a,b, c,d)) {

            returnMath.max(a,c,d);

        } else{

            if(c==Math.max(a, b, c,d)) {

                return Math.max(a, b,d);

            }else{

                if (d==Math.max(a, b, c,d)) {

                    return Math.max(a, b, c);

                }

            }

        }

    }

}
function Middle2(a,b,c,d) {

    if (a==Math.min(a,b, c,d)) {

        returnMath.min(b,c,d);

    } else {

        if (b==Math.min(a,b, c,d)) {

            return Math.min(a,c,d);

        } else{

            if(c==Math.min(a, b, c,d)) {

                return Math.min(a, b,d);

            }else{

                if (d==Math.min(a, b, c,d)) {

                    return Math.min(a, b, c);

                }

            }

        }

    }

}

var num=Number(prompt("输入任意一个四位数"));
alert(getmax(num));
alert(getmin(num));

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: