Rabu, 09 Maret 2016

Segitiga Pascal (USB Gunadarma 2016)

Hari Kamis jam 8.30 diadakan seleksi lomba live coding USB 2016. Peserta diminta membuat program segitiga pascal bagi yang akan mengikuti lomba live coding USB 2016. Untuk angkatan 3&4 maka menggunakan bahasa Java, sedangkan tingkat 1&2 menggunakan bahasa QBasic.
Pertama para peserta ditunjukkan output segitiga pascal yang kira-kira begini bentuknya :


Sebagai input, user bisa memasukkan jumlah tingkat yang diinginkan.
Gambar di atas menunjukkan user memasukkan 7 sebagai jumlah tingkat yang diinginkan.

Nah, jika kita sudah mengerti sedikit tentang segitiga Pascal ini, berikut kodingan java segitiga pascal

import java.util.Scanner;
class livecod{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Masukkan banyak tingkat? ");
int t = scan.nextInt();
for(int i = 1; i<=t;i++){
    for(int j = i; j>=2*t;j++) //memberikan spasi di awal
     System.out.print(" ");
    for(int k = 1;k<=i;k++) //memberi isi segitiga pascal
     System.out.print(" "+bil(i,k)+" ");
    System.out.println("");
} 
}
public static int bil(int tingkat, int posisi) {
 if(posisi==1 || posisi ==tingkat) 
    return 1;
 return bil(tingkat-1,posisi-1) + bil(tingkat-1,posisi); //proses rekursif
}
}

Berikut adalah hasil outputnya dengan input=10