PENJELASAN SECARA MATEMATIKA

 

Secara matematika, program yang saya buat tergolong sangat sederhana. Adapun penjelasan yang dapat saya sampaikan adalah sebagai berikut.

Pertama-tama, dengan menggunakan kalkulator, saya mencari jumlah digit di tiap seleksi. Bila dibawah 10, digitnya kelipatan 1, antara 9-100, digitnya 2, dst.

Ketika sudah didapatkan ke delapan wilayah seleksi, barulah kita menggunakan logika matematika untuk mendapatkan digit yang dicari.

Sebagai logikanya, saya hanya menggunakan variabel sementara sebagai bantuan menampung data. Tidak akan ada masalah jika input <10. Karena input=digit. Sedangkan kalau yang lebih besar dari itu, kita baru akan mencari secara matematika.

else if(number<=189)
    {   temp=number-9;
        /*penambahannya*/
        number=(temp+1)/2;
        digit=9+number;
        /*digit kedua*/
        if(temp%2==0) printf("%ld\n",digit%10);
        else if(temp%2==1) printf("%ld\n",digit/10);
}

Dalam hal ini kita akan menggunakan contoh sampel dengan inputan 31. Harus menghasilkan output 0.

 Jika diketahui bahwa input adalah 31, maka ia tergolong number dengan kelipatan 2 dan batas digit 189. Maka ia akan memasuki seleksi ke 2 seperti yang ada di atas.

Karena batas seleksi ke 1 adalah digit 9, maka temp=31-9. maka temp= 22. Pernyataan ke dua maka number = (22+1)/2-> number menjadi 11;.

kemudian mulailah kita mencari digitnya. Digit=9+11 menjadi digit=20.

Masuklah tahap seleksi dalam seleksi. Karena temp%2=22%2=0. Maka cetaklah 20%10. Hasilnya adalah 0!

bullet

INDEX

 

 

 

 

 

 

 

Hosted by www.Geocities.ws

1