在Javascript中,基于给定高度具有空中心的三角形
我最近有一个任务,就是根据用户给定的随机高度来做一个空三角形 它必须看起来像那样,但用户是可以设置高度的人。在Javascript中,基于给定高度具有空中心的三角形,javascript,html,algorithm,triangular,triangle,Javascript,Html,Algorithm,Triangular,Triangle,我最近有一个任务,就是根据用户给定的随机高度来做一个空三角形 它必须看起来像那样,但用户是可以设置高度的人。 我的脚本现在看起来像这样: var hgh=prompt(“设置三角形的高度:”); 文件。填写(“”); 对于(var i=1;i而言,问题在于这种情况: hgh实际上是一个字符串(因为提示符返回一个字符串)。因此“+”操作符在这里处理字符串,并将hgh和“1”连接起来,而不是添加这些值。如果输入“5”,(hgh+1)将导致“51”,而不是“6” 快速解决方案:将表达式重写为hgh-
我的脚本现在看起来像这样:
var hgh=prompt(“设置三角形的高度:”);
文件。填写(“”);
对于(var i=1;i而言,问题在于这种情况:
hgh实际上是一个字符串(因为提示符返回一个字符串)。因此“+”操作符在这里处理字符串,并将hgh和“1”连接起来,而不是添加这些值。如果输入“5”,(hgh+1)将导致“51”,而不是“6”
快速解决方案:将表达式重写为hgh-i+1。没有字符串减法,因此(hgh-i)将hgh转换为一个数字并进行适当的减法。我采用了稍微不同的方法,但在pre
元素中呈现时,它似乎工作正常,而不是像上面那样直接写入页面
const三角形=()=>{
let pre=document.querySelector('pre');
let height=Number(提示('Set the triangle's height:'))| | false;
设maxheight=32;
//仅处理值大于1且小于33的有效整数。。。
如果(isNaN(高度)| |高度==假){
警惕(‘不是一个数字’);
返回false;
}
如果(高度<2){
警报(“给定高度太小”);
返回false;
}
如果(高度>最大高度){
警惕(“过高”);
返回false;
}
//hwp:中途点
让hwp;
//k:对于偶数三角形,将该值减去空格
设k=0;
//计算中间点
如果(高度%2==0){
hwp=高度/2;
k=1;
}否则{
hwp=(高度-1)/2;
}
//使用的字符
设c=String.fromCharCode(88);
设s=String.fromCharCode(32);
设n=String.fromCharCode(10);
for(设i=0,j=0;i
pre{margin:1rem;}
var hgh = prompt("Set the triangle's height: ");
document.write("<center><pre>");
for (var i = 1; i <= hgh ; i++) {
var s = "";
for (var j = 1; j <= (2 * hgh - 1); j++) {
if (i != hgh ) {
if (j == hgh + 1 - i || j == hgh - 1 + i) {
s += "X";
}
else {
s += " ";
}
}
else {
s += "X";
}
}
document.write(s);
document.write("<br>");
}
document.write("</pre></center>");
if (j == hgh + 1 - i ... )