对于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>
最后运行结果如下:
这些算法基本都是对于循环语句的一些使用,并且进行嵌套。