大数加法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 大数加法

大数加法

 2013/10/17 18:21:02  denyx123  程序员俱乐部  我要评论(0)
  • 摘要:publicstaticStringsuperAdd(Stringa,Stringb){if(a.length()<b.length()){Stringtmp=a;a=b;b=tmp;}inti=a.length()-1;intj=b.length()-1;intxx=0;intx=0;StringBuffersb=newStringBuffer();while(i>=0&&j>=0){intaa=a.charAt(i)-'0';intbb=b.charAt
  • 标签:加法
class="java" name="code">
public static String superAdd(String a, String b) {

		if (a.length() < b.length()) {
			String tmp = a;
			a = b;
			b = tmp;
		}
		
		int i = a.length() - 1;
		int j = b.length() - 1;
		int xx = 0;
		int x = 0;
		StringBuffer sb = new StringBuffer();
		
		while (i >= 0 && j >= 0) {
			int aa = a.charAt(i) - '0';
			int bb = b.charAt(j) - '0';
			int cc = aa + bb + xx;
			xx = cc / 10;
			x = cc % 10;
			sb.append((char)(x + '0'));
			i--;
			j--;
		}
		
		if (i >= 0) {
			for (; i >= 0; i--) {
				if (xx != 0) {
					sb.append((char)(((a.charAt(i) - '0') + xx)%10+'0'));
					xx = ((a.charAt(i) - '0') + xx)/10;
				}else{
					sb.append(a.charAt(i));
				}
			}
		}
		
		if(xx!=0){
			sb.append((char)('0'+xx));
		}
		sb.reverse();
		return sb.toString();
	}


发表评论
用户名: 匿名