Looping segitiga siku - siku dengan angka

Saya ingin membuat sebuah segitiga dengan angka seperti gambar dibawah ini

1

12

123

tetapi, jika n = 4 maka setelah angka 3 akan balik menjadi 1 lagi seperti dibawah ini

1

12

123

1231

saya sudah buat programnya tapi saya bingung apa yang harus diubah karena masih ada yang salah

function printNumber(segitiga) {

    let result = '';

    for (i = 1; i <= segitiga; i++){

        for (j = 1; j <= i; j++){

            result += (i);

        }

        result += '\n';

        // return result;

    }

return result;

}

// 4, 7, 10

console.log(printSegitiga(2));

console.log(printSegitiga(3));

console.log(printSegitiga(6));

avatar nonalipo
@nonalipo

2 Kontribusi 1 Poin

Diperbarui 1 tahun yang lalu

2 Jawaban:

<div>Kamu bisa menggunakan seperti ini<br><br></div><pre>function printNumber( <em>param</em> ) { for (let i = 1; i &lt;= param; i++) {

  let result = [];

  for (let j = 1; j &amp;lt;= i; j++) {
    result.push(j);

  }

  console.log(result.join(&quot; &quot;));
}

}

printNumber(6);

<br></pre>

avatar Yuant
@Yuant

4 Kontribusi 4 Poin

Dipost 1 tahun yang lalu

<div>Anda tidak pernah mengembalikannya ke angka 1, setelah mencapai 4. Tentu saja hasilnya belum sesuai ekspektasi. Coba lakukan seperti ini:<br><br></div><pre>function printSegitiga(segitiga) { let result = ''; for (let i = 1; i &lt;= segitiga; i++) { let num = 0; for (let j = 1; j &lt;= i; j++) { num++; if (num &gt; 3) num = 1; result += num; } result += '\n'; } return result; } console.log(printSegitiga(6));</pre><div><br>Opsi lain adalah menggunakan Remainder (%), tetapi cara saya di atas lebih ringan untuk CPU.</div><pre>for (let j = 0; j &lt; i; j++) { result += (j % 3 + 1); }</pre>

avatar danielwilianto
@danielwilianto

16 Kontribusi 17 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban