web前端 javascript 练习题一

248 阅读2分钟

函数

1.编写任意个数字的求和、差、积、商的函数

思路分析:首先求任意个数,因此需要一个能够获取函数传递参数个数及值的形参:arguments,方法不一,思路仅供参考

function f1(){

var sum=arguments[0], //将第一个数符初值分别给这几个变量

cha=arguments[0],

ji=arguments[0],

shang=arguments[0];

for(var i=1;i<arguments.length;i++){ //用arguments获取用户传入的参数

sum=sum+arguments[i];

cha=cha-arguments[i];

ji=ji*arguments[i];

shang=shang/arguments[i];

}

console.log("he"+sum+"cha"+cha+"ji"+ji+"shang"+shang);}f1(1,2,3,4);

2.编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数比如: 计算0-3之间能组成的奇数个是01、21、03、13、23、31

思路分析:两个数字任意组合,先判断是否是奇数,然后再排除个位和十位相同的数即可方法:

function f3(x,y){

var count=0;

for(var i=x;i<=y;i++){ //x和y之间的数任意组合

for(var j=x;j<=y;j++){

var str=Number(i+""+j); //将x和y拼接组成2位的数再转化为2位的数字

if(str%2!=0&&i!=j){

console.log(i+""+j);

count++;

}

}

}

console.log(count);

}

f3(0,3);

求斐波那契数列

1、1、2、3、5、8、13、21、34、55……F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

方法:

function f6(n){ //求斐波那契数列

var a1=1;

var a2=1;

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

var an=a1+a2; //每一项等于前两项的和

a1=a2; //每次循环改变a1和a2使其指向下一次的前两项

a2=an;

}

return an;}

console.log(f6(5));

2、//递归求斐波那契数列

function getFib(x){

if(x==1||x=2){

return 1;

}

return getFib(x-1)+getFib(x-2);}

console.log(getFib(12));