Javascript 如何将星星和数字组合成一个金字塔,形成一个单一的图案
需要一个有数字和星星的金字塔,没有例子可以回顾Javascript 如何将星星和数字组合成一个金字塔,形成一个单一的图案,javascript,Javascript,需要一个有数字和星星的金字塔,没有例子可以回顾 * * 0 * * 1 0 1 * * 0 1 0 1 0 * * 1 0 1 0 1 0 1 * 我能得到一些帮助吗 这是我有的,但我不知道怎么把数字放进去 功能显示金字塔{ 对于设i=0;i
*
* 0 *
* 1 0 1 *
* 0 1 0 1 0 *
* 1 0 1 0 1 0 1 *
我能得到一些帮助吗
这是我有的,但我不知道怎么把数字放进去
功能显示金字塔{
对于设i=0;i控制台。LogBuffd9你可以这样做,但是如果中间的是0或1,将取决于你提供的数字。 功能构建{ 设网格= 设总=n*2; 对于设i=0;i
console.logbuild9以下是获得预期结果的思考过程: 所有索引为偶数的行称为“偶数行”0、2、4、6、 所有索引不均匀的行称为“不均匀行”1、3、5、7、 所有星星都是任何一行中的第一列或最后一列 对于所有偶数行,偶数索引显示0,不均匀索引显示1 对于所有非均匀行,非均匀索引显示0,偶数索引显示1 我添加了一个名为getSymbol的函数,它执行最后三次检查并返回相应的符号。为了更好的可读性,我还重命名了迭代器变量 函数getSymbolcolumn,max,row{ 如果列===0 | |列===max-1{//如果它是行中的第一个或最后一个索引 返回'*' } 如果行%2===0{//如果它是一个不均匀的行 如果列%2==0{//如果它是偶数列 返回“0”; } 返回“1”//如果该行中的列不均匀 } //如果不是平局,那就是不平局 如果列%2==0{//如果它是该行中的偶数列 返回“1”; } 返回“0”//如果该行中的列不均匀 } 功能显示金字塔{ 对于let row=0;row
我们注意到一种模式,如果从零开始,偶数行或奇数行从0开始,反之亦然。交替模式应该提示我们循环的数组。我不确定您是否需要空格,或者是否要更改树中的字符,所以我将它们作为参数添加 如果希望数组中有2个以上的元素,并且第一个元素位于中间,则可以在每一行上移动数组,而不是将其反转 函数显示棱锥体、字符、带空格{ 让charArrayOrdered=charArray 对于设i=0;i
EvenLine = (n % 2 == 0);
Count = 2*n - 1;
在两颗星之间建立序列可以通过一个简单的for循环来完成
把这些放在一起,我们可以构建以下函数
功能GetLinen{
//为以星形开头的行创建字符串
var行=*;
//确定该行是偶数还是奇数
var EvenLine=n%2==0;
//计算行中1和0的总数
变量计数=2*n-1;
//我们需要一个变量来存储下一个字符是1还是0
var One=EvenLine?true:false;//偶数行以1开头,奇数行以0开头
//重复“计数”次数,在1和0之间交替
对于var i=0;i让我们首先尝试只为金字塔的一行编写函数,任何一行。我们现在也将忽略空白 金字塔的每一行似乎都遵循一些简单的规则: 所有行都以*开头。 “内部序列”只是交替1和0一定次数。 每行的内部序列中有2*n-1位,第一位除外。 偶数行0、2、4……以1开始内部序列。 奇数行1、3、5…以0开始内部序列。 除第一行外,所有行都以附加的*结尾。 在上面的规则中,一切都可以从n确定。因此我们的函数只需要一个参数: 功能GetLinen{ // ... } 我们还可以确定一行是偶数还是奇数,以及内部序列有多少个字符:
EvenLine = (n % 2 == 0);
Count = 2*n - 1;
在两颗星之间建立序列可以通过一个简单的for循环来完成
把这些放在一起,我们可以构建以下函数
功能GetLinen{
//为以星形开头的行创建字符串
var行=*;
//确定该行是偶数还是奇数
var EvenLine=n%2==0;
//计算th中1和0的总数
e线
变量计数=2*n-1;
//我们需要一个变量来存储下一个字符是1还是0
var One=均衡线?真:假;//偶数行从1开始,奇数行从0开始
//重复“计数”次数,在1和0之间交替
对于var i=0;我
常数行=5;
常量列=2*行-1;
//创建一个充满
常量数组=Arrayrows.fill.map=>Arraycolumns.fill;
//如果r和c是数组的行和列索引,则
//每行放置两个问号,其中c=行-1±r如果r为0,则只有一个星号
//对于列-1-r和行-1+r之间的所有元素,如果c是奇数,则交替使用1;如果c是偶数,则交替使用0
const pyramid=array.mapfunctionrow,r{
返回row.mapfunctionv,c{
返回c==rows-1-r | c==rows-1+r?*:c>rows-1-r&&cEvenLine = (n % 2 == 0);
Count = 2*n - 1;
console.log(GetLine(0));
console.log(GetLine(1));
console.log(GetLine(2));
*
*0*
*101*
printPyramid(5);
*
* 0 *
* 1 0 1 *
* 0 1 0 1 0 *
* 1 0 1 0 1 0 1 *