加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数相加

发布时间:2020-12-14 03:03:48 所属栏目:大数据 来源:网络整理
导读:pre name="code" class="java"package com.zhiru;/* * 大数加法。 */public class BigDataAdd {public static boolean isDigit(String s) {int i = 0;boolean res = false;while (i s.length()) {char x = s.charAt(i);if (x = '0' x = '9') {i++;res = true
<pre name="code" class="java">package com.zhiru;

/*
 * 大数加法。
 */
public class BigDataAdd {

	public static boolean isDigit(String s) {
		int i = 0;
		boolean res = false;
		while (i < s.length()) {
			char x = s.charAt(i);
			if (x >= '0' && x <= '9') {
				i++;
				res = true;
			} else {
				res = false;
				break;
			}
		}
		return res;
	}

	public static void bigDataAdd(String a,String b) {
		int l1 = a.length();
		int l2 = b.length();
		if ((a != null && l1 > 0) && (b != null && l2 > 0)) {
			int maxLen = l1 > l2 ? l1 : l2;
			int k = maxLen;
			if (isDigit(a) && isDigit(b)) {
				int[] a1 = new int[maxLen + 1];
				int[] a2 = new int[maxLen + 1];
				for (int i = k,j = l1 - 1; j >= 0; i--,j--) {
					a1[i] = a.charAt(j) - '0';
				}
				for (int m = k,n = l2 - 1; n >= 0; m--,n--) {
					a2[m] = b.charAt(n) - '0';
				}
				for (int p = k; p > 0; p--) {
					a1[p] += a2[p];
					if (a1[p] >= 10) {
						a1[p] -= 10;
						a1[p - 1]++;
					}
				}
				if (a1[0] != 0) {
					System.out.print(a + " " + b + "和为" + (k + 1) + "位长n");
					for (int i = 0; i <= k; i++) {
						System.out.print(a1[i]);
					}
				} else {
					System.out.print(a + " " + b + "和为" + (k) + "位长n");
					for (int i = 1; i <= k; i++) {
						System.out.print(a1[i]);
					}
				}

			}
			else{
				System.out.print("参数中含有非法字符!n");
			}
		} else {
			System.out.print("参数为nulln");
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		bigDataAdd("","");
		bigDataAdd(" "," ");
		bigDataAdd("-1214 fe AGE","123 456 789 ");
		bigDataAdd("1234567890","0987654321");
	}

}
参数为null 参数中含有非法字符! 参数中含有非法字符! 1234567890 0987654321和为10位长 2222222211

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读