javascript正则表达式(六)(小案例)

<!doctype html>
<html>
	<head>
		<title>标题</title>
		<meta charset="utf-8">
		<script>
/*1.
		var count=0;
		for(var i=1;i<5;i++){
			for(var j=1;j<5;j++){
				if(i!=j){
					for(var k=1;k<5;k++){
						count++;
						if(j!=k&&i!=k){
							console.log(""+i+j+k);
						}
					}
				}
			}
		}
		console.log(count);

		function calc(sales){
			var bonus=0;
			sales>=100&&(
				bonus+=(sales-100)*0.01,
				sales=100
			);
			sales>=60&&(
				bonus+=(sales-60)*0.015,
				sales=60
			);
			sales>=40&&(
				bonus+=(sales-40)*0.03,
				sales=40
			);
			sales>=20&&(
				bonus+=(sales-20)*0.05,
				sales=20
			);
			sales>=10&&(
				bonus+=(sales-10)*0.075,
				sales=10
			);
			bonus+=sales*0.1
			return bonus;
		}
		console.log(calc(75));

		function calc(y,m,d){
			var days=0;
			m>11&&(days+=30);
			m>10&&(days+=31);
			m>9&&(days+=30);
			m>8&&(days+=31);
			m>7&&(days+=31);
			m>6&&(days+=30);
			m>5&&(days+=31);
			m>4&&(days+=30);
			m>3&&(days+=31);
			m>2&&(
				days+=28,
				(y%4==0&&y%100!=0||y%400==0)&&
																days++
			);
			m>1&&(days+=31);
			days+=d;
			
			return days;								
		}
		console.log(calc(2016,2,5));
	//交换两变量中的值:3种
	//1. 声明第三个变量: 禁用
	//2. 不声明第三个变量: 仅限于交换数字
	//		x+=y,y=x-y,x-=y;
	//3. 交换任意内容:
		// x=[y,(y=x)][0];
		function sort(x,y,z){
			x>y&&(x+=y,y=x-y,x-=y);
			// x=[y,(y=x)][0]
			y>z&&(y+=z,z=y-z,y-=z);
			// y=[z,(z=y)][0]
			x>y&&(x+=y,y=x-y,x-=y);
			// x=[y,(y=x)][0]
			console.log(x,y,z);
		}
		sort("a","b","c");

	//斐波那契数列:
	//f(1)=1  f(2)=1  f(n)=f(n-1)+f(n-2)
	//1,1,2,3,5,8,13,21,34,55
	//1 2 3 4 5 6 7  8  9  10

	//function f(n){
		//if(n<3){
			//return 1;
		//}
		//return f(n-1)+f(n-2);
	//}

	//在函数内,又调用了自己——递归调用
	//递归调用的内层函数,是在外层函数还未结束,就已经开始了,外层函数的调用,就会被阻塞。
	//缺点:算法复杂度太高,且浪费内存
	//解决:绝大多数递归,都可被循环代替
	function f(n){
		if(n<3){return 1}
		else{
			var f1=1,f2=1,fn;
			for(var i=1;i<=n-2;i++){
				fn=f1+f2;
				f1=f2;
				f2=fn;
			}
			return fn;
		}
	}
	console.log(f(1000));

		//判断n是否是质数
		function isPrime(n){
			if(n<=3){return true;}
			else{
				for(var i=2;
						i<=parseInt(Math.sqrt(n));
						i++){
					if(n%i==0){
						return false;
					}
				}
				return true;
			}
		}
		console.log(isPrime(111));
		var count=0;
		//找出101~200之间的素数
		for(var n=101;n<=200;n++){
			for(var i=2;
					i<=parseInt(Math.sqrt(n));
					i++){
				if(n%i==0){break;}
			}
			if(i>parseInt(Math.sqrt(n))){
				count++;
				console.log(n);
			}
		}
		console.log(count);

		function fenjie(n){
			for(var i=2,arr=[];i<=n;i++){
				while(n%i==0){
					arr.push(i);
					n/=i;
				}
			}
			console.log(arr.join("x"));
		}
		fenjie(8);


	//最大公约数: a>b
	// r=a%b;
	// a=b;
	// b=r;
	// 直到b==0
	// a就是最大公约数
		function gongyue(a,b){
			a<b&&(a+=b,b=a-b,a-=b);
			var r=0;
			var j=a*b;
			while(b!=0){
				r=a%b;
				a=b;
				b=r;
			}
			console.log("最大公约:"+a);
			//最小公倍:a*b/最大公约
			console.log("最小公倍:"+j/a);
		}
		gongyue(80,90);

/*21*/
		var d1,d2=1;
		for(var d=10;d>1;d--){
			d1=(d2+1)*2;
			d2=d1;
		}
		console.log(d1);
		</script>
	</head>
	<body>
		
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值