Kode Hari Ini [18.10.18]

Hari ini kita akan membahas soal membuat deret aritmatika 1-2+3-4...

Problem: Create a program that will calculate a sequence of number (1, 2, 3, … n) with addition and 
subtraction by turns. For example:
n=3 then the calculation will be 1-2+3 and the result will be 2
n=6 then the calculation will be 1-2+3-4+5-6 and the result will be -3
Ask user to input n sequence numbers then display the result of calculation.
Sample Input 1
6
Sample Output 1
-3
Sample Input 2
11
Sample Output 2
6
Sample Input 3
23
Sample Output 3
12


Pembahasan :

Berikut adalah Algoritma dari program diatas:
  1. Inisialisasi variabel counter, inputLimit, ganjil adalah 0, genap adalah 0, dan hasil
  2. Masukkan nilai inputLimit
  3. Inisialisasi variabel counter adalah 1 sebagai awal dari loop
  4. Ketika counter lebih kecil atau sama dengan inputLimit lakukan loop
  5. Jika counter dibagi 2 bersisa 1 maka ganjil yang baru adalah ganjil yang lama ditambah counter. Selain itu genap yang baru adalah genap yang lama ditambah counter
  6. Lakukan increment counter (counter +1)
  7. Ulangi tahap 4,5, dan 6 hingga counter melebihi inputLimit
  8. Inisialisasi variable hasil adalah ganjil dikurangi genap
  9. Cetak nilai dari hasil
Konsep dari deret aritmatika ini adalah ketika bilangan ganjil bertemu genap maka akan dikurangi. Berikut adalah illustrasi cara kerja program diatas:

Sample Input : 6
Ekspektasinya
1-2+3-4+5-6=-3
(1+3+5)-(2+4+6) = -3 //Kelompokan menjadi ganjil-genap dan dikurungkan.

Bisa dilihat bahwa kita mengelompokkan ganjil dan genap terlebih dahulu lalu mengurangkan ganjil dengan genap karena ganjil menjadi angka pertama. Hasil dari deret tersebut selalu berpola setengah dari nilai maksimum/yang diinput. Jika genap maka hasilnya minus setengah dari nilai input. Sedangkan jika ganjil maka hasilnya adalah positif setengah dari nilai tersebut dengan pembulatan ke atas. 


Inilah problem hari ini, jika ada yang menemukan algoritma yang lebih efektif dan efisien lagi silakan tinggalkan komentar dibawah. Terima kasih dan sampai jumpa pada pertemuan berikutnya.



Comments

Popular Posts