Scanner sc = new Scanner(System.in);
System.out.println("请输入两个数");
// PrintWriter out=new PrintWriter(System.out);
String A = sc.nextLine();
String B = sc.nextLine();
//比较输入字符串A和B的长度
int alen = (A.length() > B.length()) ? A.length() : B.length();
int blen = (A.length() < B.length()) ? A.length() : B.length();
//定义一个空字符串补较小字符串的位数
String strTemp = "";
for (int i = alen - blen; i > 0; i--) {
strTemp += "0";
}
//如果字符串长度较小则补前面的位数
if (A.length() > B.length()) {
B = strTemp + B;
} else {
A = strTemp + A;
}
//将字符串转化为字符数组
char[] aa = A.toCharArray();
char[]bb = B.toCharArray();
//将字符数组转化为整数数组
int[] a = new int[alen];
int[]b = new int[alen];
//字符1与数字1在ASCII表中相差48,将字符aa转化为整数a
for (int i = 0; i < alen; i++) {
a[i] = aa[i] - 48;
b[i] = bb[i] - 48;
}
//定义一个最长的数组
int[] sum = new int[a.length];
for (int i = a.length - 1; i >= 0; i--) {
//从数组最后一位开始计算
sum[i] = a[i] + b[i] + sum[i];
if (sum[i] >= 10) {//如果a和b相加大于10数组前一位数字加一a加b的结果减10
sum[i - 1]++;
sum[i] -= 10;
}
}
for (int i = 0; i < sum.length; i++) {
//从小到大依次输出
System.out.print(sum[i]);
}
高精度算法
最新推荐文章于 2022-09-24 20:14:10 发布
本文探讨如何在解决算法问题时实现高精度计算,重点讲解在LeetCode等平台上的应用。通过实例解析,展示如何巧妙地处理大数据量和精度要求高的问题,提升职场竞争力。
摘要由CSDN通过智能技术生成