01 |
Jika kita menjumlahkan dua buah bilangan, misal 345 dan 567. Tentunya kita ingat sewaktu kita diajarkan penjumlahan saat duduk pada bangku Sekolah Dasar. Kita akan menjumlahkan dari belakang, dan jika hasil dari penjumlahan > 10 maka yang diambil nilai yng belakangnya dan digit yang berikutnya akan ditambah dengan satu, seperti berikut ini:345567— +912tidak mungkin hasilnya seperti ini :345567— +81012maka dapat kita lihat pada program berikut ini dengan cara rekursif:
#include <cstdlib> |
02 | #include <iostream> |
03 |
04 | using namespace std; |
05 |
06 | int angka; |
07 | int A[20]; |
08 | int B[20]; |
09 | int jumlah[20]; |
10 | |
11 | void masuk(int angka){ |
12 | cout<<"Penjumlahan 2 bilangan (BIG INTEGER) ITERATIF "<<endl<<endl; |
13 | cout<<"masukkan banyak bilangan: "; |
14 | cin>>angka; |
15 | cout<<"\nbilangan pertama : "<<endl; |
16 | for(int i=0;i<angka;i++){ |
17 | cout<<"angka ke-"<<(i+1)<<" : "; |
18 | cin>>A[i]; |
19 | } |
20 | cout<<"bilangan 1 = "; |
21 | for(int i=0;i<angka;i++){ |
22 | cout<<A[i]; |
23 | } |
24 | cout<<endl; |
25 | cout<<"\nbilangan kedua : "<<endl; |
26 | for(int i=0;i<angka;i++){ |
27 | cout<<"digit ke-"<<(i+1)<<" : "; |
28 | cin>>B[i]; |
29 | } |
30 | cout<<"bilangan 2 = "; |
31 | for(int i=0;i<angka;i++){ |
32 | cout<<B[i]; |
33 | } |
34 | cout<<endl; |
35 | } |
36 | |
37 | void beri_nilai(int angka){ |
38 | for(int i=0;i<angka;i++){ |
39 | jumlah[i]=0; |
40 | } |
41 | } |
42 | |
43 | /*void penjumlahan_iteratif(int angka){ |
44 | for(int i=(angka-1);i>=0;i--){ |
45 | jumlah[i]=jumlah[i]+A[i]+B[i]; |
46 | if (jumlah[i] >9 && i !=0){ |
47 | jumlah[i]=jumlah[i]%10; |
48 | jumlah[i-1]=jumlah[i-1]+1; |
49 | } |
50 | } |
51 | }*/ |
52 | |
53 | void penjumlahan_rekursif(int angka){ |
54 | int i=0; |
55 | if(angka>0){ |
56 | if(jumlah[i] >9 && i !=0){ |
57 | jumlah[i]=jumlah[i]%10; |
58 | return penjumlahan_rekursif(angka-1); |
59 | } |
60 | else |
61 | { |
62 | jumlah[i-1]=jumlah[i-1]+1; |
63 | return penjumlahan_rekursif(angka-1); |
64 | } |
65 | } |
66 | } |
67 | void keluar(int angka){ |
68 | cout<<"\nHasil penjumlahan 2 bilangan = "; |
69 | for(int i=0;i<angka;i++){ |
70 | cout<<jumlah[i]; |
71 | } |
72 | cout<<endl<<endl; |
73 | } |
74 |
75 | int main(int argc, char *argv[]) |
76 | { |
77 | //penjumlahan_iteratif(10); |
78 | cout<<endl; |
79 | penjumlahan_rekursif(angka); |
80 | |
81 | system("PAUSE"); |
82 | return EXIT_SUCCESS; |
83 | } |

0 komentar:
Posting Komentar