Cod sursa(job #2532634)

Utilizator nxssGrasu Pancreasu nxss Data 28 ianuarie 2020 02:40:31
Problema A+B Scor 100
Compilator java Status done
Runda Arhiva de probleme Marime 2.39 kb
import java.util.ArrayList; // import the ArrayList class
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;


public class Main {
	public static void main(String[] args) {
		ArrayList<Character> a, b, c;
		a = new ArrayList<Character>(50);
		b = new ArrayList<Character>(50);
		c = new ArrayList<Character>(50);

		try {
			// File inputFile = new File("adunare.in");
			FileReader inputReader = new FileReader("adunare.in");
			BufferedReader bufferedReader = new BufferedReader(inputReader);
			int currentChar;
			while((currentChar = bufferedReader.read())!= '\n')
			{
				a.add((char)currentChar);
			}

			while((currentChar = bufferedReader.read())!= '\n')
			{
				b.add((char)currentChar);
			}

			c = b;
		} catch (Exception e) {
			System.out.println("File not found: ");
		}

		

		if(b.size() > a.size()) {
			b = a;
			a = c;
		}

		c = new ArrayList<Character>(50);


		int dif = a.size()-b.size();

		System.out.println("a has size: " + a.size());
		for(int i = 0; i < a.size(); i++) {
			System.out.print(a.get(i));
		}
		
		System.out.println("\nb has size: " + b.size());
		for(int i = 0; i < b.size(); i++) {
			System.out.print(b.get(i));
		}

		int iterator;
		int extra = 0;
		System.out.println("\nSum: " + a.toString());
		int j = 0;
		for(iterator = a.size()-1; iterator >= 0; iterator--) {
			Character bla = (Character)a.get(iterator);
			char v1 = bla.charValue();
			v1 -= '0';
			char v2 = 0;
			if(iterator-dif >= 0) {
				v2 = ((Character)b.get(iterator-dif)).charValue();
				v2 -= '0';
			}
			int sum = v1 + v2 + extra;
			int mod = sum % 10;
			extra = sum / 10;
			// System.out.print(": " + v1 + " " + v2 + " " +mod);
			if(c.size() == j) {
				c.add((char)(mod+'0'));
				j++;
			}
				else
					c.set(j++, (char)(mod+'0'));
			// System.out.print(mod);
		}

		if(extra != 0) {
			// System.out.print(extra);
			if(c.size() == j)
				c.add((char)(extra+'0'));
				else
					c.set(j++, (char)(extra+'0'));
		}

		System.out.println(c.toString());

		BufferedWriter output = null;
        try {
            File file2 = new File("adunare.out");
            output = new BufferedWriter(new FileWriter(file2));
            for(int i = c.size(); i > 0;)
				output.write(c.get(--i));
			output.close();
        } catch ( Exception e ) {
            e.printStackTrace();
        } 
      }
        
		
		// read a
		// read b

}