Advertisement
Timkor

firTree

Nov 1st, 2020 (edited)
1,244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   let treeHigh = +parseInt(prompt("how high is tree must be?"));
  2.   let rows;
  3.   let stars;
  4.   let spaces;
  5.   //console.put(parseInt(treeHigh/2));
  6.  
  7. for (rows = 0; rows < treeHigh-1; rows++) {
  8.     for (spaces = treeHigh-2; spaces >= rows; spaces--) {
  9.         console.put("."); // можно заменить на пробельчики: console.put(" ")
  10.     }
  11.     for (stars = 0; stars <= rows; stars++) { // два цикла вывода звездочек не сложно объединить в один. первый row + 1 раз
  12.         console.put("*");                     // второй rows раз => (stars <= 2 * rows) или (ведь <= на 1 раз больше чем < )
  13.     }                                         // stars < 2 * rows + 1 (на нулевой строке 0 * 2 + 1 = 1, на первой 1 * 2 + 1 = 3, на второй 2 * 2 + 1 = 5 и т.д
  14.     for (stars = 1; stars <= rows; stars++) { // т.е. от одного из циклов можно легко избавиться
  15.         console.put("*");
  16.     }
  17.  console.put("\n"); // можно заменить на console.log() - просто перевести строку, ничего не выводя.
  18. }
  19. for (rows = treeHigh-2; rows < treeHigh-1; rows++) { // для пенечка достаточно одного цикла - вывести пробельчиков в нем, а после него поставить звездочку. Ваш for (rows = treeHigh-2; rows < treeHigh-1; rows++) = (x-2, x-1,x++) - это всегда один раз, можно этот цикл "сократить" вовсе.
  20.     for (spaces = 0; spaces < treeHigh-1; spaces++) {
  21.         console.put(".");
  22.     }console.put("*")
  23. }
  24. // хороший стиль, именования достаточно информативные, все тесты проходит, желательно немного упростить - избавиться от двух
  25. // лишних циклов.
  26. // Красивого кода!)
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. второй вариант решения через половину широчайшей (нижней) ветки
  37. /*вивести на екран ялинку такого розміру, який вказує користувач
  38.  
  39.  
  40.   *
  41.  ***
  42. ***** - если считать высоту 3 (без пенька), то широкая ветвь = h * 2 - 1 , а (широкая ветвь - 1) / 2 именно столько пробелов выводим в первой строке, можно заметить , или вывести, что это число сокращается до  (h * 2 - 1 - 1) / 2 = h - 1
  43.   *                    */ // и уменьшаем их на 1 в каждой последующей, ну а звездочек от 1 и увеличиваем на 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement