计算阶乘并计算总和
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var str="for循环实现10的阶乘";
document.write("<h2>"+str+"</h2><hr>");
var s=0;
for(var n=1;n<=10;n++){
function sum(n){
if(n<=1){
return 1
}else{
/*return n*sum(n-1);*/
return n*arguments.callee(n-1)
}
}
var result=sum(n);
document.write(n+"的阶乘等于:"+result+"<br>");
s+=result;
}
n=n-1;
document.write("1~"+n+"的阶乘之和等于:"+s);
</script>
</html>
计算阶乘:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>课本上的阶乘</title>
</head>
<body>
</body>
<script type="text/javascript">
var str='计算任意数的阶乘';
function jiecheng(n){
if(n==1){
return 1;
}
return n*jiecheng(n-1);
}
var n=prompt('求n的阶乘');
document.write('<h1>'+str+'</h1>'+'<hr>');
n=parseInt(n);
if(isNaN(n)){
document.write('输入的值不合法!');}
else{
document.write(n+'的阶乘为:'+jiecheng(n));}
</script>
</html>
九九乘法表:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>九九乘法表</title>
</head>
<body>
<script type="text/javascript">
for(var i=1;i<10;i++){
for(var j=1;j<=i;j++){
document.write(i+'*'+j+'='+(j*i)+' ');
}document.write('<br>');//记得换行
}
</script>
</body>
</html>
二维数组的转置:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>转置</title>
</head>
<body>
<script type="text/javascript">
var arr=[[0,2,3,4],[6,5,7,8],[0,7,5,4]];
var res=[];
for(var i=0;i<arr[0].length;i++){
res[i]=[];
for(var j=0;j<arr.length;j++){
res[i][j]=arr[j][i];
}
}
console.group('转置前:');
console.log(arr);
console.groupEnd();
console.group('转置后:');
console.log(res);
console.groupEnd();
</script>
</body>
</html>
冒泡排序:
<!DOCTYPE html>
<html>
<head>
<title>冒泡排序逆序</title>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var arr=[1,2,8,643,4,9];
var temp=0;
document.write('待排序数组:'+arr);
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i;j++){
if(arr[j]<arr[j+1]){
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
document.write('<br>'+'排序后数组:'+arr);
</script>
</body>
</html>
前面的是乱序,后面的是已经排好的:j<arr.length-i
直接插入排序:
<!DOCTYPE html>
<html>
<head>
<title>直接插入排序</title>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var arr=[7,54,3,12,6,4,123,534,73];
document.write('待排序数组:'+arr);
var temp=0;
for(var i=0;i<arr.length;i++){
//逐个插入,新插入的与前一个有序数组中所有元素进行比较
for(var j=i;j>0;j--){//插入一个元素,与前一个元素相比较,确定自己的位置
if(arr[j-1]>arr[j]){//不满足条件,跳出循环
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
}
}
document.write('<br>'+'排序后的数组'+arr);
</script>
</body>
</html>