#include <cstdlib>
#include <iostream>
using namespace std;
class Penjumlahan{
public:
Penjumlahan();
int ukuran();
void masuk(int angka);
void penjumlahan_iteratif(int angka);
int penjumlahan_rekursif(int angka);
void keluar(int angka);
private:
int A[100];
int B[100];
int jumlah[100];
int angka;
};
Penjumlahan::Penjumlahan(){
for(int i=0;i<angka;i++){
jumlah[i]=0;
}
}
int Penjumlahan::ukuran(){
cout<<"Penjumlahan 2 bilangan (BIG INTEGER) ITERATIF "<<endl<<endl;
cout<<"masukkan banyak bilangan: ";
cin>>angka;
return angka;
}
void Penjumlahan::masuk(int angka){
cout<<"\nbilangan pertama : "<<endl;
for(int i=0;i<angka;i++){
cout<<"angka ke-"<<(i+1)<<" : ";
cin>>A[i];
}
cout<<"bilangan 1 = ";
for(int i=0;i<angka;i++){
cout<<A[i];
}
cout<<endl;
cout<<"\nbilangan kedua : "<<endl;
for(int i=0;i<angka;i++){
cout<<"digit ke-"<<(i+1)<<" : ";
cin>>B[i];
}
cout<<"bilangan 2 = ";
for(int i=0;i<angka;i++){
cout<<B[i];
}
cout<<endl;
}
void Penjumlahan::penjumlahan_iteratif(int angka){
for(int i=(angka-1);i>=0;i--){
jumlah[i]=jumlah[i]+A[i]+B[i];
if (jumlah[i] >9 && i !=0){
jumlah[i]=jumlah[i]%10;
jumlah[i-1]=jumlah[i-1]+1;
}
}
}
void Penjumlahan::keluar(int angka){
cout<<"\nHasil penjumlahan 2 bilangan = ";
for(int i=0;i<angka;i++){
cout<<jumlah[i];
}
cout<<endl<<endl;
}
int Penjumlahan::penjumlahan_rekursif(int angka){
int i=0;
if(angka>0){
if(jumlah[i] >9 && i !=0){
jumlah[i]=jumlah[i]%10;
return penjumlahan_rekursif(angka-1);
}
else
{
jumlah[i-1]=jumlah[i-1]+1;
return penjumlahan_rekursif(angka-1);
}
}
}
int main(int argc, char *argv[])
{
int ukuran;
Penjumlahan huruf;
ukuran = huruf.ukuran();
huruf.masuk(ukuran);
cout<<endl;
cout<<"jumlah iteratif diatas adlah = ";
huruf.penjumlahan_iteratif(ukuran);
huruf.keluar(ukuran);
cout<<"jumlah rekusif diatas adlah = ";
huruf.penjumlahan_rekursif(ukuran);
huruf.keluar(ukuran);
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
class Penjumlahan{
public:
Penjumlahan();
int ukuran();
void masuk(int angka);
void penjumlahan_iteratif(int angka);
int penjumlahan_rekursif(int angka);
void keluar(int angka);
private:
int A[100];
int B[100];
int jumlah[100];
int angka;
};
Penjumlahan::Penjumlahan(){
for(int i=0;i<angka;i++){
jumlah[i]=0;
}
}
int Penjumlahan::ukuran(){
cout<<"Penjumlahan 2 bilangan (BIG INTEGER) ITERATIF "<<endl<<endl;
cout<<"masukkan banyak bilangan: ";
cin>>angka;
return angka;
}
void Penjumlahan::masuk(int angka){
cout<<"\nbilangan pertama : "<<endl;
for(int i=0;i<angka;i++){
cout<<"angka ke-"<<(i+1)<<" : ";
cin>>A[i];
}
cout<<"bilangan 1 = ";
for(int i=0;i<angka;i++){
cout<<A[i];
}
cout<<endl;
cout<<"\nbilangan kedua : "<<endl;
for(int i=0;i<angka;i++){
cout<<"digit ke-"<<(i+1)<<" : ";
cin>>B[i];
}
cout<<"bilangan 2 = ";
for(int i=0;i<angka;i++){
cout<<B[i];
}
cout<<endl;
}
void Penjumlahan::penjumlahan_iteratif(int angka){
for(int i=(angka-1);i>=0;i--){
jumlah[i]=jumlah[i]+A[i]+B[i];
if (jumlah[i] >9 && i !=0){
jumlah[i]=jumlah[i]%10;
jumlah[i-1]=jumlah[i-1]+1;
}
}
}
void Penjumlahan::keluar(int angka){
cout<<"\nHasil penjumlahan 2 bilangan = ";
for(int i=0;i<angka;i++){
cout<<jumlah[i];
}
cout<<endl<<endl;
}
int Penjumlahan::penjumlahan_rekursif(int angka){
int i=0;
if(angka>0){
if(jumlah[i] >9 && i !=0){
jumlah[i]=jumlah[i]%10;
return penjumlahan_rekursif(angka-1);
}
else
{
jumlah[i-1]=jumlah[i-1]+1;
return penjumlahan_rekursif(angka-1);
}
}
}
int main(int argc, char *argv[])
{
int ukuran;
Penjumlahan huruf;
ukuran = huruf.ukuran();
huruf.masuk(ukuran);
cout<<endl;
cout<<"jumlah iteratif diatas adlah = ";
huruf.penjumlahan_iteratif(ukuran);
huruf.keluar(ukuran);
cout<<"jumlah rekusif diatas adlah = ";
huruf.penjumlahan_rekursif(ukuran);
huruf.keluar(ukuran);
system("PAUSE");
return EXIT_SUCCESS;
}
0 komentar:
Posting Komentar