web前端——4 JavaScript代码画图(菱形)

我们在学习数学的时候就接触过杨辉三角,今天我们要用代码来画出它的样子:
上代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
		//输出五行的杨辉三角
			var max = 5;
			for(var x = 0;x<= max;x++){           //行数
				for (var y = 0;y <= 6 - x ; y++) {   //空格
					document.write("&nbsp;");   
				}                               
				for (var z = 0;z < x ;z++) {     //字符
					document.write("&nbsp;"+"*"+"&nbsp;");
				}      
				document.write("<br>");
			}
			
			for(var x = 0;x<= max;x++){           //行数
				for (var y = 0;y <= x+2 ; y++) {   //空格
					document.write("&nbsp;");   
				}                               
				for (var z = 0;z < max - x -1;z++) {     //字符
					document.write("&nbsp;"+"*"+"&nbsp;");
				}      
				document.write("<br>");
			}
		</script>
		<hr />
		<script type="text/javascript">
			for (var i = 0;i < 6;i++) {                 //
				for (var j = 6; j >= i;j--) {           //     *
					document.write("&nbsp;")            //    * *
				}                                       //   *   *
				for (var k = 1;k <= ( 2 * i - 1 );k++) {//  *     *
					if(k==1 || k == ( 2 * i - 1 )){     // *       *
						document.write("*");
					}else{
						document.write("&nbsp;")
					}
				}document.write("<br>");
			}
			
			
			for (var i = 4;i > 0;i--) {  //行数
				for (var j = 6; j >= i;j--) {//空格符
					document.write("&nbsp;")               // *     *
				}                                          //  *   *
				for (var k = 1;k <= ( 2 * i - 1 );k++) {   //   * *
					if(k == 1 || k == ( 2 * i - 1 )){      //    *
						document.write("*");               
					}else {                                
						document.write("&nbsp;")
					}
			
				}document.write("<br>");
			}
		</script>
		<script type="text/javascript">
			for (var i = 0;i < 6;i++) {                 //     *
				for (var j = 6; j >= i;j--) {           //    ***
					document.write("&nbsp;")            //   *****
				}                                       //  *******
				for (var k = 1;k <= ( 2 * i - 1 );k++) {// *********
					
						document.write("*");
					
				}document.write("<br>");
			}
		</script>
		
		<hr />
		<script type="text/javascript">
			var i,j;
			var s = 4;
			for( i = 0;i < s;i++){   //行数:4
				for (j = s;j > i;j--) {    //第一个*之前有多少空格符      
					document.write("&nbsp;");             //   *
				}                                         //  * *
				for (j = 0;j < 5;j++) {                   // *   *
					if(j == 0 || j == 2*i - 1 || i == 3){ //* *** * 
						document.write("*");
					}else{
						document.write("&nbsp;");
					}
				}
				document.write("<br>");
			}
			
		</script>
		<hr />
		//设置input框,用户可以动态输入行数,写入数字几就可以显示几行
		<input type="text" id="txt" placeholder="请输入数字……" />
		<button onclick="txt()">点下获取</button>
		<script type="text/javascript">
			function txt(){
			//DOM节点获取input框中的值
				var n = document.getElementById("txt").value;
				for(var i = 0;i < n;i++){ // 此处的n为用户输出的number类型的数字(控制行数)
					for(var j = n;j >i -1 ;j--){
						document.write("&nbsp");     //控制空格   空格从上到下依次减少
					}
					for(var k = 0;k < 2 * i - 1;k++){
						document.write("*");
					}
					document.write("<br>");
				}
			};
			
		</script>
		<hr />
		<input type="text"  id="tt" placeholder="请输入数字……" />
		<button onclick = "tt()">点击获取</button>
		<script type="text/javascript">
            function tt(){
            	var m = document.getElementById("tt").value;
                for(var i = m; i > 0;i--){               //控制正反
                	for(var j = m;j >i-1 ;j--){
                		document.write("&nbsp;");
                	}
                	for(var k = 1;k <=  2*i-1 ;k++){  // *号呈1,3,5,7,9……的个数排列
                		document.write("*");
                	}
                	document.write("<br>");
                }
            };
		</script>
		<hr />
		<script type="text/javascript">
			for(var i = 0;i < 5;i++){
				for(var j = 5;j > i - 1;j--){     //    当  j >0为直角三角形, j > i-1空格多一行显示
					document.write("&nbsp;");
				}
				for(var k = 1;k <= 2*i -1;k++){   //k<=2*i-1 *会直接从第二行开始打印
					if(k == 1 || i == 4 || k == 2*i -1 ){   //k==1 都为左面的*  ,i==4表示第四行显示 ,右边显示为k==2*i-1
						document.write("*");
					}
					else{
						document.write("&nbsp;");
					}
				}
				document.write("<br>");
			};
		</script>
		<hr />
		<script type="text/javascript">
			for(var i = 5;i >0;i--){
				for(var j = 5;j > i-1;j--){
					document.write("&nbsp;")
				}
				for(var k = 1;k <= 2*i-1;k++){
					if(k == 1 || k == 2*i-1 || i == 5){   
					/* i==5表示第五行   总体构思:输出左边所有的*号,
					①左边都是从1开始,那也就是说必须满足k等于1,
					②输出所有右边的*号,与k等于一道理相似,即满足k == 2*i-1
                    ③左右的*都构思完成后,就要想我要输出几行,那么就要用到行数i,这里的i==5就是输出的5行       
                    ——最后的结果显示的就是一个反着的“V”字状					 */
						document.write("*");
					}
					else{
						document.write("&nbsp;");
					}
				}
				document.write("<br>")
			}
		</script>
	</body>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值