C++ soal 6

Soal enam,

input = 5

output =

*                   *                   *                      *                   *

*           *      *          *           *           *      *          *

*                   *                       *                   *                 →  sampai selesai

*           *       *        *            *           *       *        *

*                   *                *                           *                *


Dari 8 soal yang ada, ini yang paling susah karena membutuhkan capability untuk mencari pola, untuk mempermudah mencari pola, coba bagi struktur ini sebagai dua bagian yaitu bagian atas sampai tengah, dan bagian bawah. Kenapa? Karena pada bagian 1 – tengah pola nya terbalik dengan yang di bawah.

Supaya lebih mudah mencari pola nya, ganti * dengan posisi bintang dalam garis ex:

input 3          input 5            input 7

1 3 5 2 7         1 5 9  13           1     7    13

2 4 6 8            2  4  6  8 10       2   6  8 12  14

1 3 5 7            3  7  11               3  5 7  11  15

2 4 6 8 10            4   12 16

1  5  9  13           3  5 7  11  15

2   6  8 12  14

1     7    13

Bingung? Gapapa pikir lagi 5 jam ke depan.


Langsung saja saya beritau, jadi untuk mencari pola yang bisa diterapkan di tiap baris dengan hanya membedakan i atau baris dan x atau input.

cara nya adalah mengecek apakah posisi j dalam baris i adalah termasuk dalam salah satu dari kondisi ini

1. j sama dengan i

2. j dikurangi i di mod x-1 = 0

3. j adalah (x dikurangi i + 1)

4. j dikurangi ( x – 1) di mod x-1 = 0

bila sudah mengerti kondisi di atas maka tinggal mengerjakan kode yang simple

6

Pada bagian atas+tengah maka dimulai dari i sampai i/2 + 1, ingat bahwa i adalah integer jadi bila 7 dibagi 2 hasilnya 3 bila di tambah 1 menjadi 4 alias baris tengah.

Setiap baris memiliki posisi yang di wakilkan oleh j, dimana j dari 1 sampai 80. Setelah menjalankan perintah for untuk j kita mengecek apakah salah satu dari 4 kondisi di atas adalah benar, bila benar makan yang di print * bukan spasi. Penambahan enter tidak perlu dilakukan karena cursor akan otomatis pindah kebawa mengingat satu baris hanya bisa 80 karater.

Pada bagian bawah hal yang sama dilakukan, bedanya i dimulai dari x div 2, bila x =7 maka dimulai dari 3, lalu berukurag terus sampai 1, for yang ada di dalam juga harus diganti menyesuaikan dengan i nya.

selesai.

Bila kalian bingung tidak apa – apa, kalau lupa kembali lah lagi ke tutorial.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *