函数案例练习

1.求两个数中的最大值

function getMax(a,b){
	return a > b ? a : b;
}
console.log(getMax());

2.求三个数中的最大值

function getMax(a,b,c){
	return a > b ? (a > c ? a : c) : (b > c ? b : c);
}
console.log(getMax());

3.判断一个数是否是质数(只能被1和自身整除)

function isPrimeNumber(num){
	for(var i = 2; i < num;i ++){
		if(num % i == 0){//说明一个整数整除了,就没必要向后继续整除了,此时就验证除是不是质数
			return false;
		}
	}
	return true;
}
console.log(isPrimeNumber(3) ? "是质数" : "不是质数");——是质数

var num = 11;
function isPrimeNumber(num){
	for(var i = 2;i <= num /2;i++){//任何一个数字与这个数的一半相取余还不等于0,那就没必要再往下取余
		if(num % i == 0){
			return false;
		}
	}
	return true;
}
console.log(isPrimeNumber(num));

4.求两个数的差

function getSub(x,y){
	return x - y;
}
console.log(getSub(30,10));

5.求一组数中最大值

function getMax(arr){
	var max = arr[0];
	for(var i = 0; i <= arr.length;i++){
		if(max < arr[i]){
			max = arr[i];
		}
	}
	return max;
}

var arr = [1,2,3,4,5];
var max = getMax(arr);
console.log(max);
6.求一组数字中最小值

function getMin(arr){
	var min = [0];
	for(var i = 0;i < arr.length;i++){
		if(min > arr[i]){
			min = arr[i];
		}
	}
	return min;
}
console.log(getMin([1,2,3,4,5]));

7.求一组数字的和

function getSum(arr){
	var sum = 0;
	for(var i = 0;i < arr.length;i++){
		sum += arr[i];
	}
	return sum;
}
console.log(getSum([1,2,3,4,5]));

8.通过函数实现数组反转

function reverseArr(arr){
	for(var i = 0; i < arr.length / 2;i++){
		var temp = arr[i];
		arr[i] = arr[arr.length - 1 - i];
		arr[arr.length - 1 - i] = temp;
	}
	return arr;
}
console.log(reverseArr([1,2,3,4,5]));

9.通过函数实现冒泡排序

function sortArr(arr){
	//	控制比较轮数
	for(var j = 0; j < arr.length - 1;j++){
	//控制每一轮比较次数
		for(var i = 0;i < arr.length - 1 - i ; i++){
			if(arr[i] < arr[i + 1]){
				var temp = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = temp;
			}//end if
		}//end  for
	}//end for
	return arr;
}
console.log(sortArr([1,2,3,4,5,\]));

10.求一个数字的阶乘

function getJc(num){
	var result = 1;
	for(var i = 1;i <= num;i++){
		result *= i;
	}
	return result;
}
console.log(getJc(5)); 

11.求斐波那契数列

function fbnq(num){
	var first = 1;
	var secend = 1;
	var third = 0;
	for(var i = 3;i <= num;i++){
		third = first + secend;
		first = secend;
		secend = third;
	}
	return third;
}
console.log(fbnq(4));

12.输入年月日,获取这个日期是这一年的第多少天

function getDays(year,momth,day){
//定义变量存储对应的天数
	var days = day;
	//如果输入的是一月份,没必要算天数直接返回
	if(month == 1){
		return days;
	}
	//定义一个数组存储每个月份的天数
	var months = [31,28,31,30,31,30,31,31,30,31,30,31];
	for(var i = 0;i < month - 1;i++){//小于的是输入的月份-1
	days += months[i];
	}
	//需要判断这个年份是不是闰年
	if(isYear(year) && month > 2){
		days ++;
	}
	return days;
}
function isYear(year){
	return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}
console.log(getDays(2001,3,2));

13.求一个数字的阶乘和:5的阶乘+4的阶乘+3的阶乘

//求阶乘
function getJeicheng(num){
	var result = 1;
	for(var i = 1;i <= num;i++){
		result *= i;
	}
	return result;
}
//求阶乘和
function getJeichengSum(num){
	var sum = 0;
	for(var i = 1;i <= num;i++){
	sum += getJeicheng(i);
	}
	return sum;
}
console.log(getJieChengSum(5));

14.计算n个数的和

function getSum(){
	var sum = 0;
	for(var i = 0; i < arguments.length;i++){
		sum += arguments[i];
	}
	return sum;
}
console.log(getSum(1,2,3,4));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值