关于js中的一些常见算法

对于js来说, Javascript与Java无关,Java诞生于1991年,98年左右特别流行,为了搭载Java流行的顺风车,取名Javascript。主要是为了解决表单验证(dom,js -> html)的问题。

在js中有一些简单的但是很常见的算法,其中包括了九九乘法表,累加,阶乘等一些常见问题。这些问题主要在于循环语句的使用。
先说九九乘法表,九九乘法表中有四个形式,前两种形式较为简单,后两种形式略微复杂。

 <!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>九九乘法表</title>
	<style>
	div{
		width: 100px;
		display: inline-block;
	}
	table td{
		width: 100px;
	}
</style>
</head>
<body>
	<script>
		// 1
		for(var i=1;i<=9;i++){
			for(var j=1;j<=i;j++){
				document.write('<div>'+i+'*'+j+'='+i*j+'</div>');
			}
			document.write('<br />');
		}

		document.write('<hr />');

		// 2
		for(var i=9;i>0;i--){
			for(var j=1;j<=i;j++){
				document.write('<div>'+i+'*'+j+'='+i*j+'</div>');
			}
			document.write('<br />');
		}
		
		document.write('<hr />');

		// 3
		document.write("<table>");   
		for (var x = 9; x>=1; x--){  
		    document.write("<tr>"); 
			for(var i=1;i<10-x;i++){
				 document.write("<td></td>");  
			}	
			for (var y = x; y>=1; y--){  
	        	document.write("<td>"+y+"*"+x+"="+y*x+"</td>");   
		    }  
		}  
		document.write("</table>");

		document.write("<hr />");

		// 4
		document.write("<table>");   
		for (var x = 1; x<=9; x++){  
		    document.write("<tr>"); 
			for(var i=1;i<10-x;i++){
				 document.write("<td></td>");  
			}	
			for (var y = x; y>=1; y--){  
	        	document.write("<td>"+y+"*"+x+"="+y*x+"</td>");   
		    }  
		}  
		document.write("</table>");
		 
 
	</script>
</body>
</html>

效果图如下:
在这里插入图片描述
其次是累加和阶乘的算法:

		 <!DOCTYPE html>
		<html lang="en">
		<head>
			<meta charset="UTF-8">
			<title>递归算法</title>
		</head>
		<body>
			<script type="text/javascript">
				// 累加
				function jia(n){
					if(n>0) return n + jia(n-1);
					if(n<=0) return 0;
				}
				var num = jia(10);
				document.write(num);
				document.write('<br/>');
		
		
		
		
				// 阶乘
				function cheng(n) {
					if(n>1) return n * cheng(n-1);
					if(n<=1) return 1;
				}
				var num1 = cheng(10);
				document.write(num1);
				document.write('<br/>');
			</script>
		</body>
		</html>

效果图如下:
在这里插入图片描述
还有对于最大公约数以及最小公倍数的一些计算方法:

	<!DOCTYPE html>
	<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>最大公约数与最小公倍数</title>
	</head>
	<body>
		<script type="text/javascript">
			// 最大公约数
			var a = 44;
			var b = 18;
			var min = Math.min(a,b);
			var max = Math.max(a,b);
			for(var i=min;i>0;i--){
				if(a%i == 0 && b%i == 0){
					document.write('最大公约数' + i);
					break;
				}
			}
			document.write('<br/>');
	
	
	
	
			// 最小公倍数
			for(var j=max;j<=a*b;j++){
				if(j%a == 0 && j%b == 0){
					document.write('最小公倍数' + j);
					break;
				}
			}
			document.write('<br/>');
		</script>
	</body>
	</html>

其运行效果如下:
在这里插入图片描述
最后是一个水仙花数的计算:

	<!DOCTYPE html>
	<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>水仙花数</title>
	</head>
	<body>
		<script type="text/javascript">
			// 水仙花数
			for(var num =100;num<1000;num++){
				var a = num % 10;
				var b = parseInt(num/10) % 10;
				var c = parseInt(num/100);
				if(a*a*a + b*b*b + c*c*c == num){
					document.write('水仙花数' + num);
					document.write('<br/>');
				}
			}
			
		</script>
	</body>
	</html>

最后运行结果如下:
在这里插入图片描述
这些算法基本都是对于循环语句的一些使用,并且进行嵌套。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值