Menjumlahkan Dua Buah Bilangan Dengan Digit Tak Hingga
Buatlah sebuah fungsi ADT yang dapat menjumlahkan 2 buah bilangan dengan syarat kapasitas digit masing-masing 2000.
import java.util.*;
class longdigitapp {
public static void main(String[]args) {
Scanner sc = new Scanner(System.in);
LongDigit d = new LongDigit();
System.out.print("\nMasukan bilangan pertama = ");
String in1 = sc.nextLine();
String num1 = in1;
System.out.print("\nMasukan bilangan kedua = ");
String in2 = sc.nextLine();
String num2 = in2;
System.out.print("Hasil penjumlahannya adalah = ");
d.add(num1,num2);
}
}
class LongDigit{
private String num1,num2,result;
public LongDigit(){
result = "";
}
public void total(String copy1, String copy2) {
num1 = copy1;
num2 = copy2;
}
public void add(String num1,String num2) {
int depan,belakang,hasil,gudang = 0;
int depan1 = num1.length();
int belakang1 = num2.length();
if (depan1<=2000 && belakang1<=2000) {
if(num1.length() < num2.length()){
for(int i = 0;i<belakang1-depan1;i++){
num1 = "0" + num1;
}
}
else if(num1.length() >= num2.length()){
for(int i = 0;i<belakang1-depan1;i++){
num2 = "0" + num2;
}
}
for(int i=Math.max(depan1,belakang1)-1;i>=0;i--){
depan = Integer.parseInt(""+num1.charAt(i));
belakang = Integer.parseInt(""+num2.charAt(i));
hasil = (depan+belakang+gudang)%10;
gudang = (depan+belakang+gudang)/10;
result = hasil + result;
}
if (gudang>=0) {
result = Integer.toString(gudang)+result;
}
System.out.println(""+num1+"+"+num2+" = ");
System.out.println(result);
}
else {
System.out.print("digits exceeds than 2000");
}
}
}
import java.util.*;
class longdigitapp {
public static void main(String[]args) {
Scanner sc = new Scanner(System.in);
LongDigit d = new LongDigit();
System.out.print("\nMasukan bilangan pertama = ");
String in1 = sc.nextLine();
String num1 = in1;
System.out.print("\nMasukan bilangan kedua = ");
String in2 = sc.nextLine();
String num2 = in2;
System.out.print("Hasil penjumlahannya adalah = ");
d.add(num1,num2);
}
}
class LongDigit{
private String num1,num2,result;
public LongDigit(){
result = "";
}
public void total(String copy1, String copy2) {
num1 = copy1;
num2 = copy2;
}
public void add(String num1,String num2) {
int depan,belakang,hasil,gudang = 0;
int depan1 = num1.length();
int belakang1 = num2.length();
if (depan1<=2000 && belakang1<=2000) {
if(num1.length() < num2.length()){
for(int i = 0;i<belakang1-depan1;i++){
num1 = "0" + num1;
}
}
else if(num1.length() >= num2.length()){
for(int i = 0;i<belakang1-depan1;i++){
num2 = "0" + num2;
}
}
for(int i=Math.max(depan1,belakang1)-1;i>=0;i--){
depan = Integer.parseInt(""+num1.charAt(i));
belakang = Integer.parseInt(""+num2.charAt(i));
hasil = (depan+belakang+gudang)%10;
gudang = (depan+belakang+gudang)/10;
result = hasil + result;
}
if (gudang>=0) {
result = Integer.toString(gudang)+result;
}
System.out.println(""+num1+"+"+num2+" = ");
System.out.println(result);
}
else {
System.out.print("digits exceeds than 2000");
}
}
}