首页 > 试题广场 >

直角三角形

[编程题]直角三角形
  • 热度指数:58455 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
请补全JavaScript代码,要求在页面上渲染出一个直角三角形,三角形换行要求使用"br"实现。三角形如下:
*
**
***
     var tr=''
            for(var i=1;i<4;i++){
                    tr+='*'.repeat(i)+"<br/>"
                }

发表于 2024-04-10 18:46:57 回复(0)
var triangle = document.querySelector('.triangle');
// 补全代码
let length = 3
let str = ''
for(let i = 0; i<3; i++) {
    str += new Array(i + 1).fill('*').join('')
    if (i !== length -1) {
        str += '<br />'
    }
}
triangle.innerHTML = str

发表于 2023-09-18 15:04:01 回复(1)
// 补全代码
   triangle.innerHTML="*<br>**<br>***"

发表于 2023-05-30 17:53:22 回复(0)
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <div class='triangle'></div>

        <script>
            var triangle = document.querySelector('.triangle');
            // 补全代码
          
                triangle.innerHTML=`*<br>**<br>***`
            
        </script>
    </body>
</html>
第一眼看过去的做法,提交之后内存占用高,速度慢,第二次封了一个函数
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <div class='triangle'></div>

        <script>
            var triangle = document.querySelector('.triangle');
           let str=''
          function printf(n){
                for (let i = 0; i < n; i++) {
               
                str='*'+str
                triangle.innerHTML=triangle.innerHTML+`${str}<br>`
                
            }
            }
           printf(3)
            
        </script>
    </body>
</html>
速度比直接写快了一点,后来把函数拆了,直接用里面的for循环速度又快一点1980ms,内存也少了。但是速度才超过70%+,有无更快速的写法求教
发表于 2023-05-12 16:03:02 回复(0)
            var triangle = document.querySelector('.triangle');
            // 补全代码
            let arr = ['*','**','***']
            arr.forEach(item =>{
                return triangle.innerHTML += item +'<br>'
            })
发表于 2023-03-20 15:47:46 回复(0)
<script>
            var triangle = document.querySelector('.triangle');
            // 补全代码
            var arr = ['*'];
            for (var k = 1; k < 3; k++) {
                arr.push(arr[k-1] + '*');
            }
            triangle.innerHTML = arr.join('<br/>');
        </script>
发表于 2023-03-02 11:10:45 回复(0)
let str = ''
for(let i = 0; i < 3; i++){
    for(let j = 0; j < i+1; j++){
        str += '*'
    }
    str += `<br>`
}
triangel.innerHTML = str

发表于 2023-02-19 21:20:39 回复(0)
let str = " ";
for(let i = 0;i<=3;i++){
str+=" * ".repeat(i)+"<br />"
}
triganle.innerHTML = str
发表于 2023-02-03 15:24:56 回复(0)
        <script>
            var triangle = document.querySelector('.triangle');
            // 补全代码                                           
            var str = '';                                           // 先创建一个空的变量,用来保存后面要拼接出来的三角形
            for(let i = 0; i < 3; i++){                        // 第一层的循环是控制行数的;i<3 这里行数就是3行,这里是从0开始的,i的值分别是(0,1,2)这3次都符合循环的条件,所以执行3次。
                for(let j = 0; j <= i;j++){                    // 第二层循环是控制每一行*的数量的;这里很巧妙用i的值,i控制行数的同时也在控制*的个数(但是注意这里条件要写等于号,不然会少一个*)
                    str += '*';                                     // 第二层循环控制这里拼接几次
                }
                str += '<br/>'                                   // 第一层循环控制这里,在第二层循环完毕后在末尾拼接<br/>起到换行的作用
            }
            triangle.innerHTML = str                    // triangle.innerHTML 这里的作用是将str以html的形式渲染到页面上。
        </script>

发表于 2023-01-17 11:50:30 回复(0)
题目就要求使用"br"实现,看了题目直接一行this.triangle.innerHTML = "*<br/>**<br/>***"就实现了,然后看了评论好多都是用循环实现的,还给出了考点说的就是考循环,大家都是怎么看出来的
发表于 2023-01-04 09:45:41 回复(0)
let str = ''
let i = 1
while(i < 4) {
   str += '*'.repeat(i) + '</br>'
    i++
  }
triangle.innerHTML = str  
发表于 2022-12-03 16:23:48 回复(0)
我是直男:triangle.innerHTML = '*<br/>**<br/>***<br/>'
发表于 2022-11-30 22:23:41 回复(0)
  <script>
            var triangle = document.querySelector('.triangle');
            // 补全代码
           // triangle.innerHTML='*<br>**<br>***<br>'
            var fragment = [];
            function canvasTriangle(n){
               var str = '';
               for(var i=0;i<n;i++){
                   str+='*'
               }
                fragment.unshift(str+'<br>')
               n-=1
               triangle.innerHTML = fragment.join('')
               if(n>0){
                   canvasTriangle(n)
               }
           }
            canvasTriangle(3)
        </script>
发表于 2022-10-28 16:42:31 回复(0)
                let str = '*'
                for (let i = 0; i < 3; i++) {
                  triangle.innerHTML += str + '<br/>'
                  str = str + '*'
                }
发表于 2022-10-17 13:43:53 回复(0)

triangle.innerHTML="*<br>**<br>***";

发表于 2022-08-30 21:06:00 回复(0)
triangle.innerHTML= [1,2,3].map(x=>'*'.repeat(x)).join('<br/>')
发表于 2022-08-27 14:28:38 回复(0)

问题信息

难度:
53条回答 901浏览

热门推荐

通过挑战的用户

查看代码