• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie określnego patternu przy użyciu pętli.

+1 głos
73 wizyt
pytanie zadane 18 października w JavaScript przez Piotrek1997 Nowicjusz (130 p.)

Cześć, chciałbym się dowiedzieć jak stworzyć pattern przy użyciu pętli.

Chodzi mi dokładnie o taki wzór: 

Przy użyciu tego kodu: 

let linia1 = ""
for(let i = 0; i < 5; i++){
    linia1 += "+"
    console.log(linia1)
}

otrzymuje taki pattern:

Co musiałbym dodać lub zmodyfikować w moim istniejącym kodzie aby otrzymać rezultat jaki oczekuję ?
Dziękuję za pomoc.

4 odpowiedzi

+3 głosów
odpowiedź 18 października przez Jakub 0 Pasjonat (21,080 p.)
edycja 18 października przez Jakub 0

Dla każdego i możesz obliczyć i % 2 (resztę z dzielenia przez dwa). W ten sposób sprawdzisz, czy wartość licznika dla danego wiersza jest liczbą parzystą. Jeśli tak, to dodaj '+', w przeciwnym razie '-'.

+3 głosów
odpowiedź 19 października przez qax Mądrala (6,510 p.)

Zadanie jest tak proste, że musiałem napisać smiley:

let linia1 = "";
for (let i = 0; i < 5; i++) {
   if (i % 2 == 0) linia1 += "+";
   else linia1 += "-";
   console.log(linia1);
}

 

komentarz 19 października przez VBService VIP (137,830 p.)
komentarz 19 października przez qax Mądrala (6,510 p.)

Heh laugh

+2 głosów
odpowiedź 18 października przez ScriptyChris Mędrzec (168,660 p.)

Przy każdej iteracji sprawdzaj czy wartość w i jest parzysta (wtedy dodaj "+") czy nie (wtedy dodaj "-") - możesz tutaj skorzystać z operatora reszty (modulo).

+1 głos
odpowiedź 19 października przez VBService VIP (137,830 p.)
edycja 19 października przez VBService

Można i tak  wink

  const n = 5;
  const pattern = ('+-').repeat(Math.floor(n/2)+1);
  for (let i=1; i<=n; i++) console.log(pattern.slice(0,i));

 

<input type="number" min="1" max="100" value="4">
<pre></pre>
input {
  width: 3em;
}
pre {
  width: 50vw;
  padding: 0.5em;
}
const count = document.querySelector('input'),
       view = document.querySelector('pre');

count.addEventListener('input', drawPattern);

function drawPattern({target}) {
  const n = target.value;
  const pattern = ('+-').repeat(Math.floor(n/2)+1);
  
  view.textContent = '';
  
  for (let i=1; i<=n; i++) {
    //console.log(pattern.slice(0,i));
    view.textContent += pattern.slice(0,i) + '\n';
  }  
}

 

Podobne pytania

+1 głos
2 odpowiedzi 445 wizyt
0 głosów
3 odpowiedzi 19,001 wizyt
pytanie zadane 22 kwietnia 2015 w C i C++ przez falauthy Stary wyjadacz (11,550 p.)
+1 głos
3 odpowiedzi 115 wizyt
pytanie zadane 15 stycznia w C i C++ przez dominiktkocz Nowicjusz (170 p.)

85,873 zapytań

134,644 odpowiedzi

298,914 komentarzy

56,739 pasjonatów

Advent of Code 2021

Top 15 użytkowników

  1. 926p. - rucin93
  2. 925p. - Whistleroosh
  3. 912p. - nidomika
  4. 876p. - adrian17
  5. 867p. - Michal Drewniak
  6. 866p. - Mikbac
  7. 863p. - Mateusz Bogdan
  8. 859p. - CC PL
  9. 797p. - Argeento
  10. 704p. - ScriptyChris
  11. 683p. - tokox
  12. 660p. - Vinox
  13. 645p. - TheLukaszNs
  14. 642p. - s. Dorota Kowalewska
  15. 601p. - Marcin Harasimowicz
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...