JavaScript中,使用for循环输出如下图形(等腰三角形,和平行四边形)?原理是啥?
最近在学习for循环,但是数学不是很好,老师说和数学没有太大关系,但是我实在想不出来,求教各位了;
1;只是使用for循环,(最多使用2次)最多使用4个变量,并且改一个变量就可以更改行数。
代码:
for(var a=0,b="";a<5;a++){
b+="*";
console.log(b);
}
输出为:
*
**
***
****
*****
倘若我要输出:
***** *****
***** *****
***** *****
***** *****
***** *****
如果是反方向的,该怎么想?
* *******
*** *****
***** ***
******* *
等腰三角形,如果是倒立的,规律是怎样的?如果是等边三角形,又是怎样的?只能用for循环,
看看我的想法和大家的是否一致,希望大家帮帮我这个初学js的小生。祝大家假期愉快~~~!!!
这个和语言没有太大关系,所以和JS无关
这个其实是思维方面的,一般完完全全从0到学编程,都会遇到这样的问题,这样的问题虽然简单,但其实就是看你能不能将问题转化为程序的思维
说回这个问题就是:你怎么看待星号和空格
第一个就是星号每次都在递增,这是和循环变量a挂钩的
后面两个是,星号都是5个,空格在递增,空格数和a挂钩
最后两个是空格和星号都和a挂钩
PS:如果很久都还没转过弯来,是该考虑自己是否适合编程,话比较糙。。。
解法很多种。 无非就是在控制空格和符号的数量。 正三角就是初始值为1,逐渐增加;倒三角就是初始值为符号个数,递减。
这也是我刚接触编程的时候做过的,刚开始的时候也是没想通。其实多想想就可以了。他的解法很多。
说一个我的解法吧。首先用for()的话,肯定看他多少行,就表示循环多少次。
这种图形都是由空格和*组成的。那么就看它的组合规律,这种对称图形一般看半边就行了。
比如第一个平行四边形:他是由第一行是由0个左边空格+5个组成,最后一行是由4个左边空格+5个组成,那么等于从第一行开始左边空格1个1个往上递增。
解法:接下来设置三个变量:i(行数) j(*的个数) k(左边空格的个数)
那么第个二四边形:他是由第一行是由左边4个空格+5个组成,最后一行是由左边0个空格+5个组成,那左边么空格就是依次递减一个。
那么第一个三角形:他是由第一行是由左边3个空格+1个组成,最后一行是由0个空格+7个组成,那么规律就是左边空格就是依次递减一个,*依次递增两个。
那么第二个三角形:他是由第一行是由左边0个空格+7个组成,最后一行是由3个空格+1个组成,那么规律就是左边空格就是依次递增一个,*依次递减两个。
上面就是我这个菜鸟的一个解题思路。
以下代码用了ES6,取名比较随意s就是space,空格的意思,n是要总次数,第二个参数是输出的图形
第一个很简单,累加就好了
第二个也很简单,依旧是累加,这次累加的是空格,如果是第一次进入循环就不打印空格
关于倒过来,不用es6的话,写两个循环(也许可以不用写两个循环吧,但是我没想到),用了es6的话用repeat函数可以写的更好看点
三角形
倒过来