JavaScript实现打印星型金字塔功能实例分析


Posted in Javascript onSeptember 27, 2017

本文实例讲述了JavaScript实现打印星型金字塔功能。分享给大家供大家参考,具体如下:

让你用其它语言写也是完全一样的道理,

这道题估计大家在学习C语言的时候就见过……

也就是打印以下的鬼东西:

JavaScript实现打印星型金字塔功能实例分析

当时候看到循环结构的时候觉得很无聊,就相当不屑这题,没有好好仔细想想,

因为要是放在JavaScript完全可以这样写,甚至还不算是JavaScript,仅仅就是一个html:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
</head>
<body>
&nbsp;&nbsp;*
&nbsp;***
*****
&nbsp;***
&nbsp;&nbsp;*
</body>
</html>

这里之所以不用utf-8编码是因为utf-8对于nbsp的处理与*的字体会导致排版错乱,就是不是用标准的宋体字,从而导致最终的结果无法查看。

反正你出题人出多少行,我都可以复制粘贴上面的内容完全可以实现,但是,今天编程编到一定量,有点大数据概念的时候,又见到这题,仔细思考了一下,要是出题人要求输出二十万行这样中间轴对称的星型金字塔,我TMD就呵呵了。

所以还是要彻底搞明白这个怎么实现,虽然在实际的编程中不会出现这样的编程,但是,据说一些无聊的面试还是会出这题,至少,后来者问你C语言的时候,问你如果输出二十万行这样的中间轴对称的星型金字塔,你还是要会,这题如果第一次做不好做的。

一、基本目标

首先弹出一个输入框,让用户输入一个奇数,毕竟轴对称需要一个奇数,
然后为了程序的健壮性,必须对用户输入的东西进行判断,如果输入的不是奇数,就弹出提示,不再执行后面的程序,怎么JavaScript判断一个奇数,我已经在《JavaScript对数字的判断与处理》说过,这里不再进行赘述。

考虑到浏览器的负载,这里,用户输入的奇数,我只允许去到189,你调大一点也可以,189由于在我的电脑里面感觉还可以,所以才定这个数的,没有什么特别的意义,乱输入的,不是故意测试的。

JavaScript实现打印星型金字塔功能实例分析

输入一个189行,IE已经弹出“中止脚本”的提示了,但不中止也完全没有问题!

运行结果如下:

JavaScript实现打印星型金字塔功能实例分析

如果是在写C语言程序或者其他程序,这个值绝对可以定大一点!

二、基本思想

这个弄懂就非常好写了。

JavaScript实现打印星型金字塔功能实例分析

首先,我们仅仅是要在*的左边输出空格,右边就没有必要输出空格了,输完*就直接换行

分两部分,一部分是上半部分i<=n/2的时候,另一部分是下半部分i>n/2的时候,

之所以要这样分是因为这两部分输出的*号与输出的空格数是不同的。

之后就是初中都会的找规律问题了,反正我就找到了如上的规律,编程运行时没有问题,其它数学帝找到更牛B的表达式,小弟甘拜下风。

三、制作过程

代码非常简单,就是条件结构与循环结构的表达,上面的思想弄懂了,不用说了。

这里可能会有人觉得奇怪,为何我要先n++然后n%2!=0再来判断,也就是判断n+1是偶数来判断n是否奇数,

这里主要是为了迎合下面的for循环结构……

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
</head>
<body>
</body>
</html>
<script>
var i,j,k,n;
n=window.prompt("请输入要输出的行数n,为了形成轴对称,所以你输出的必须是奇数!");
if(isNaN(n)||!n)
  alert("你输入的不是数!");
else{
  n++;
  if(n%2!=0)
    alert("你输入的不是奇数!");
  else if(n>190){
    alert("不要这么大嘛!臣妾做不到啊!");
  }
  else{
    for(i=1;i<n;i++){
      if(i<=n/2){
        for(k=n/2-i;k>0;k--)
          document.write("&nbsp;");
        for(j=0;j<2*i-1;j++)
          document.write("*");
          }
      else{
        for(k=i-n/2;k>0;k--)
          document.write("&nbsp;");
        for(j=0;j<2*(n-i)-1;j++)
          document.write("*");
        }
      document.write("<br>");
    }
  }
}
</script>

说多了也是泪,自己体会……

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js单例模式详解实例
Nov 21 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
Dec 29 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
跟我学习javascript的定时器
Nov 19 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
浅谈js中同名函数和同名变量的执行问题
Feb 12 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
JavaScript for循环 if判断语句(学习笔记)
Oct 11 Javascript
使用RN Animated做一个“添加购物车”动画的方法
Sep 12 Javascript
vue input输入框关键字筛选检索列表数据展示
Oct 26 Javascript
javascript实现移动端上传图片功能
Aug 18 Javascript
Vue Element plus使用方法梳理
Dec 24 Vue.js
微信小程序 按钮滑动的实现方法
Sep 27 #Javascript
详解Vue-cli代理解决跨域问题
Sep 27 #Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 #jQuery
javascript 作用于作用域链的详解
Sep 27 #Javascript
深入理解Vue2.x的虚拟DOM diff原理
Sep 27 #Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 #Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 #Javascript
You might like
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP操作数组相关函数
2011/02/03 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
vue组件的写法汇总
2018/04/12 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
kfc实习自我鉴定
2013/12/14 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
求职意向书
2014/04/01 职场文书
网页美工求职信范文
2014/04/17 职场文书
小学生作文评语大全
2014/04/21 职场文书
实习协议书范本
2014/04/22 职场文书
产品发布会策划方案
2014/05/12 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
2014年秘书工作总结
2014/11/25 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
心术观后感
2015/06/11 职场文书
冰雪公主观后感
2015/06/16 职场文书