JavaScript初识-笔记之练习实例100(1)

                                                 练习实例100(1)


题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
 

方法一:

  1. <script>
    for(var a=1;a<5;a++){
    	for(var b=1;b<5;b++){
    		for(var c=1;c<5;c++){
    			if(a!=b && a!=c && c!=b){
    				document.write(a+"&nbsp;")//&nbsp;标签代表为空格
    				document.write(b+"&nbsp;")
    				document.write(c+'<br>')
    				}
    			}
    		}
    	}
    </script>

方法二:

注意:这里也可以不定义变量ss,可以直接document.write(arry.length)返回的数字为24,

输出结果中的","不知道用什么办法去除,所以格外加了“[ ]”来进行区分,当然paresInt()方法的运用也是有问题的,这是碰巧运行重的结果符合要求吧了,对于初学者的我来说只能放到以后来解决了。也欢迎大家给我指点迷津。

经过同学的指点终于明白了为什么s=24,因为变量n经过循环添加了24个数组,所以n=24,经过s=parseInt(n)后,s=24。

  1. <script>
    var arry=[];//定义一个数组
    for(var a=1;a<5;a++){
    	for(var b=1;b<5;b++){
    		for(var c=1;c<5;c++){
    			if(a!=b && a!=c && c!=b){
    				var n=arry.push('['+[a,b,c]+']');//push()方法向数组末尾添加长度,并返回新的长度
    				var s=parseInt(n);//判断字符串从0开始是否是有效数字,并返回一个整数,那么这个循环为24次且都为数字,为什么输出结果为24呢?这里不建议用这个方法来计算一个数组里的字符串长度
    				var ss=arry.length;//length属性返回数组里字符串的长度为24
    				
    				
    				}
    			}
    		}
    	}
    
    document.write("总共的排列数为:"+s+"<br>")
    document.write("总共的排列数为:"+ss+"<br>")
    document.write(arry)
    </script>

方法三:

<script>
var arry=[1,2,3,4];//定义一个数组
var i=0;
for(var a in arry){
	for(var b in arry){
		for(var c in arry){
			if(a!=b && a!=c && c!=b){
				i+=1;
				document.write(arry[a])
				document.write(arry[b])
				document.write(arry[c]+"<br>")	
				}
			}
		}
	}
document.write("总共的排列数为:"+i)
</script>

发布了31 篇原创文章 · 获赞 35 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39934520/article/details/101598085
今日推荐