2014-05-09 3 views
-5

мне нужно для университета упражнений, чтобы отобразить на экране с помощью document.write дерева ниже, с использованием своего рода петли:Упражнение с петлей в JavaScript

tree

я использовал в начале для цикла, но я напечатал только первый ряд ... кто-то может мне помочь?

Это то, что я пробовал:

var numbers = [0, 1, 2, 3, 4] 
for (var i = 0; i <= numbers.length; i++) { 
    if (numbers [i] == 0) { 
     document.write(" * </br>"); 
    } 
    if (numbers [i] == 1) { 
     document.write(" *** </br>"); 
    } 
    if (numbers [i] == 2) { 
     document.write(" ****** </br>"); 
    } 
    if (numbers [i] == 3) { 
     document.write(" ******* </br>"); } 
    if (numbers [i] == 4) { 
     document.write("********* </br>"); 
    } 
    return 
} 

Спасибо!

+0

Исправлено изображение для вас;) –

+5

Anypancake, пожалуйста, показать код, который вы пробовали? –

+0

Добро пожаловать в StackOverflow ... прочитайте [страницы справки] (http://stackoverflow.com/help), в частности раздел, посвященный [Как задать хороший вопрос] (http://stackoverflow.com/help/how -спрашивать). Мы не являемся сервисом для написания кода, и (поскольку Niet уже выделены), мы ожидаем, что люди покажут, что они уже пробовали – freefaller

ответ

1

Вот мой код для вас ...

<html> 
<head> 
<script type="text/javascript" language="javascript"> 

document.write("<center>"); //write a center tag to make sure the pyramid displays correctly(try it without this step to see what happens) 
for(var i = 0; i <= 10; i++) //a loop, this counts from 0 to 10 (how many rows of stars) 
{ 
    for(var x = 0; x <= i; x++)// a loop, counting from 0 to whatever value i is currently on 
    { 
     document.write("*");//write a * character 
    } 
    document.write("<br/>"); //write a br tag, meaning new line, after every star in the row has been created 
} 
document.write("</center>"); //close the center tag, opened at the beginning 

</script> 
</head> 
<body> 

</body> 
</html> 
+0

-buzzer- WRONG. Печатает треугольник с 2 звездами во втором ряду. 3 ожидается. –

+0

вы можете управлять им, поэтому я просто даю идею .. – AshishHashCoder

+0

Добавьте это в цикл: if (x == 2) {x ++;} – nicael

3

Я собираюсь дать вам «golfed-иш» (золотая рыбка? Это должно быть делом?) Версию кода. Другими словами, самый маленький, самый неясный код, который я могу придумать для выполнения задачи. Вы не должны использовать этот, потому что ваш учитель, несомненно, спросит вас, что это значит, и вы не будете знать, но мне скучно XD

var size = 5; 
document.write("<center>"+Array.apply(0,new Array(size)).map(function(_,i) {return new Array((i+1)*2).join(" * ");}).join("<br>")+"</center>"); 

Demo

Как я уже сказал, не используйте это: p

1
<pre><script> 
for(var i=0;i<5;i++) 
{ 
    for(var c=0;c<9;c++) 
    { 
     if(Math.abs(4-c)<=i) 
      document.write("*"); 
     else 
      document.write(" "); 
    } 
    document.write("<br />"); 
} 
</script></pre> 

Это простая версия с document.write(). Единственная сложная вещь - Math.abs, которая дает расстояние от середины.

PS: следить за магических чисел

1

Добавляет пробелы и полностью расширяемой

function pyramid(lines, char) { 
    var start = 2,html = '<pre>'; 
    for (var i=lines; i--;) { 
     html += new Array(Math.floor(i+1)).join(' ') + new Array((start=start+2)-2).join(char) + '<br />'; 
    } 
    return html + '</pre>'; 
} 

document.write(pyramid(5, '*')); 

FIDDLE

1

function pyramidStar(n) { 
 
    var str = ""; 
 
    for(var i=1; i<=n; i++) { 
 
    for(var j=1; j<=n-i; j++) { 
 
     str += " "; 
 
    } 
 
    for(var k=n-i+1; k<n+i; k++) { 
 
     str += "* "; 
 
    } 
 
    for(var m=n+i; m<=2*n-1; m++) { 
 
     str += " "; 
 
    } 
 
    str += "\n"; 
 
    } 
 
    return str; 
 
} 
 

 
document.getElementById("result").innerHTML = pyramidStar(9);
<pre id="result"></pre>

Другой способ печати пирамиды звезд.

0
function star(n) { 
    for (var i = 1; i <= n; i++) { 
     for (var j = i; j < n; j++) { 
      document.write("-"); 
     } 
     for (var k = 1; k <= (2 * i) - 1; k++) { 
      document.write("*"); 
     } 
     document.write("<br/>"); 
    } 

} 

// Функция вызова

звезда (9);

Смежные вопросы