Need help!! Java's type int has a limit on how large an integer it can store. This limit can be circumvented by representing an integer as an array of digits. Write and interactive program that prompts for two integers of up to 50 digits each, adds them together, and correctly prints out the sum. One need deal only with nonnegative integers.
@KonradZuse @Hero @phi @msmithhova?
@eSpex
Wanna show as your attempt on how you tackled the problem? Pseudocode maybe? Where is your difficulty?
Align, deal with one digit at a time, concatenate. I'd do it recursively.
This is what I have so far.. import java.util.Scanner; public class Integer { public static void main(String [] args) { String s1 = {7,8,9,6,0,9,7,3,2,6}; String s2 = {9,4,8,5,9,3,8,9,2,8}; results = {s1+s2}; let i=50; for(int i=s1.length()-1; i>=0; i--) { //loop that runs from left to right if(s1[i] + s2[i] + results[i+1]) { s1[i] + s2[i] + results[i+1] < 9); results[i+1]++; } else { results = s1[i] + s2[i] + result[i+1]; } System.out.print(s1[i]=s1.charAt(i)-0); } } }
@Chris2332 @rsmith6559
I'm a bit confused with this.... An Integer is 32 million, that isn't 50 digits... http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html t: The int data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive). For integral values, this data type is generally the default choice unless there is a reason (like the above) to choose something else. This data type will most likely be large enough for the numbers your program will use, but if you need a wider range of values, use long instead.
yea so did it this way! import java.util.Scanner; public class Integer { public static void main(String [] args) { String s1 = console.next(); String s2 = console.next(); s1[i] = s1.chartAt(i) - '0'; //assigns the value s2[i] = s2.chartAt(j) - '0'; results = (" "); let j=50; char c = (j + '0'); // assigns to charcter c for(int i=s1.length()-49; i>=0; i--) { //loop that runs from left to right if(s1[i] + s2[i] + results[i+1]) { results[i+1]++; } else { results = (s1[i] + s2[i] + results[i+1]); } //if sum is greater than 9 then it will add to the bext value System.out.print(s1[i] + s2[i] + results[i+1] < 9); System.out.print(results[i+1] <9); } } }
its showing me 26 errors...
@KonradZuse
:O.....
Join our real-time social learning platform and learn together with your friends!