两大数相加

import java.util.Scanner;

public class Sum{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		String str1 = scan.next();
		String str2 = scan.next();
		scan.close();
		String str = add(str1, str2);
		System.out.println(str);
	}

	private static String add(String s1, String s2){
		StringBuffer result = new StringBuffer();
		s1 = new StringBuffer(s1).reverse().toString();
		s2 = new StringBuffer(s2).reverse().toString();
		int len1 = s1.length();
		int len2 = s2.length();
		int max = len1 > len2 ? len1 : len2;
		boolean overFlow = false;
		int Over = 0;
		if (len1 < len2)
			for (int x = len1; x < len2; x++)
				s1 += "0";
		 else if (len1 > len2)
			for (int x = len2; x < len1; x++)
				s2 += "0";
		for (int x = 0; x < max; x++){
			int Sum = Integer.parseInt(s1.charAt(x)+"") + Integer.parseInt(s2.charAt(x)+"");
			if ((Sum + Over) >= 10){
				if (x == max - 1)
					overFlow = true;
				result.append(Sum - 10 + Over);
				Over = 1;
			} else{
				result.append(Sum + Over);
				Over = 0;
			}
		}
		if (overFlow)
			result.append(1);
		return result.reverse().toString();
	}
}

猜你喜欢

转载自blog.csdn.net/FishPotatoChen/article/details/83242706