<span style="font-size:18px;">/*
*
* 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
*/
import java.util.Scanner;
public class Main {
private static Scanner sc;
public static void main(String[] args) {
sc = new Scanner(System.in);
String str1 = sc.next(); //存储加数
String str2 = sc.next(); //存储被加数
int r = 0; //保存进位
int n = 0; //结果数组的长度
//因为在运算过程中可能存在进位,故此把n设置成比这两个数中位数大的还要大1
if (str1.length() > str2.length())
n = str1.length() + 1;
else
n = str2.length() + 1;
char[] a = str1.toCharArray();
char[] b = str2.toCharArray();
int[] a1 = new int[n];
int[] b1 = new int[n];
int[] c = new int[n];
//把字符数组转换成int型的,并且按个十百千万.....这样的顺序存储
for (int i = 0; i < str1.length(); i++) {
a1[i] = (int) a[str1.length() - i - 1] - 48;
}
for (int i = 0; i < str2.length(); i++) {
b1[i] = (int) b[str2.length() - i - 1] - 48;
}
//计算,并将结果保存到c数组中
for (int i = 0; i < n; i++) {
int t = a1[i] + b1[i] + r;
r = t / 10;
c[i] = t % 10;
}
//检测最高位是否为0,如果是0,则不输出最高位,否则,从后向前遍历整个数组
if (c[n-1] == 0) {
for (int i = n - 2; i >= 0; i--) {
System.out.print(c[i]);
}
} else {
for (int i = n-1 ; i >= 0; i--) {
System.out.print(c[i]);
}
}
}
}
</span>
//由于本人能力有限,所写程序不够完美,望各位大神指点一二,小弟不胜感激。高精度加法
最新推荐文章于 2023-03-15 18:48:15 发布