Segitiga Pascal – part II
Karena banyaknya permintaan, saya coba buat coding untuk program Segitiga Pascal dalamĀ C++. Mohon maaf, untuk
program dalam bahasa JAVA, saya belum bisa buat karena pemahaman OOP saya masih cetek dan lebih-lebih, laptop saya
yang sudah tuwa dan mulai rewel menolak untuk diinstall JDK T_T
Algoritmanya tidak jauh berbeda dengan program sebelumnya dalam bahasa Pascal. Hanya saja, untuk kemudahan, saya
gunakan array 2 dimensi saja. Listingnya sebegai berikut
#include <iostream.h>
int main(){
int n,i,j;
unsigned long long arr[101][101];
cin>>n;
for (i=1;i<=n;i++){
for (j=1;j<i;j++){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
cout<<arr[i][j]<<’ ‘;
}
arr[i][i]=1;
cout<<arr[i][i]<<’\n’;
}
return 0;
}
Katanya, banyak jalan menuju Roma. Begitu pula dalam pemrograman. banyak algoritma yang bisa diterapkan untuk
menyelesaikan satu masalah. Berikut ini salah satu coding lain untuk membuat Segitiga Pascal. Masih mengunakan
bahasa C++, hanya dengan sedikit sentuhan STL dan trik minimalisasi memori (duuh, kayakya bahasanya ketinggian,
hehehe… :p ). Here they are
#include <iostream.h>
#include <vector.h>
int main(){
int n,i,j,tmp1,tmp2;
vector <unsigned long long> arr;
bool odd;
cin>>n;
arr.push_back(0);
arr.push_back(1);
if (n>=1) cout<<arr[1]<<’\n’;
for (i=2;i<=n;i++){
odd=i%2;
tmp1=0;
for (j=1;j<=i/2;j++){
tmp2=arr[j];
arr[j]=tmp1+arr[j];
tmp1=tmp2;
}
for (j=1;j<=i/2;j++) cout<<arr[j]<<’ ‘;
if (odd) {
arr.push_back(2*tmp1);
cout<<arr[i/2+1]<<’ ‘;
}
for (j=i/2;j>=1;j–) cout<<arr[j]<<’ ‘;
cout<<’\n’;
}
return 0;
}
Kira-kira demikianlah ![]()
semoga bisa membantu dan semoga tidak ngebug juga :p