Tugas
0

algoritma & progran big integer

Rabu, 31 Oktober 2012
Share this Article on :


















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:
345
567
— +
912
tidak mungkin hasilnya seperti ini :
345
567
— +
81012
maka dapat kita lihat pada program berikut ini dengan cara rekursif:






#include <cstdlib>

02#include <iostream>
03
04using namespace std;
05
06 int angka;
07    int A[20];
08    int B[20];
09    int jumlah[20];
10                        
11void 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      
37void 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      
53void 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     }
67void 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
75int 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}


Artikel Terkait:

0 komentar:

Posting Komentar