DevC Member Growth
Kembali ke /editorialTingkat Kesulitan | Easy |
Kategori | Math, Ad Hoc |
Pranala Soal | Pranala Soal |
Pranala Solusi | Solusi 1 (Loop), Solusi 2 (Math), Solusi 3 (Math 2) |
Apa yang diminta pada soal ini cukup jelas, yaitu banyak hari sampai DevC X mencapai 10 ribu member, jika saat ini ada $N$ member dan tiap harinya banyak member akan bertambah sebanyak $D$. Ada dua cara untuk menghitung jumlah hari tersebut, yaitu dengan menggunakan loop atau dengan menggunakan sedikit perhitungan matematika.
Menggunakan loop
Karena batasan yang cukup kecil, kita dapat melakukan perulangan hingga banyak member mencapai 10 ribu. Berikut adalah implementasinya dalam bahasa C++:
Menggunakan Matematika
Banyaknya member yang ingin ditambah adalah sebanyak $10000-N$, dan tiap harinya banyak member akan bertambah sebanyak $D$. Maka, banyaknya hari untuk mencapai hal tersebut adalah $\frac{10000-N}{D}$. Perhatikan bahwa kita harus bulatkan nilai ini ke bilangan bulat yang lebih besar. Fungsi untuk membulatkan ke bilangan bulat yang lebih besar disebut juga dengan fungsi ceil
.
Berikut adalah contoh implementasinya dalam bahasa C++:
Tips: cara lain menghitung ceil
Ada cara lain untuk menghitung nilai $ceil(A/B)$ jika $A$ dan $B$ keduanya adalah bilangan bulat positif, yaitu $ceil\left(\dfrac{A}{B}\right) = floor\left(\dfrac{A+B-1}{B}\right)$. Pembuktiannya diserahkan kepada pembaca.
Karena pembagian bilangan bulat pada sebagian besar bahasa pemrograman sudah dibulatkan ke bawah, maka kita dapat menyederhanakan perhitungan days di atas tanpa memanggil fungsi ceil
: