练习题13:整数加法

Posted hwystudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习题13:整数加法相关的知识,希望对你有一定的参考价值。

题目描述

请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error

输入描述:

输入为一行,包含两个字符串,字符串的长度在[1,100]。

输出描述:

输出为一行。合法情况输出相加结果,非法情况输出error

Java解法:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class test04 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
String result = add(str[0], str[1]);
System.out.println(result);
}

private static String add(String s, String s1) {
char [] c1 = s.toCharArray();
char [] c2 = s1.toCharArray();
if (!check(c1) || !check(c2)) {
return "error";
}
if (c1.length < c2.length) {
char [] temp = c1;
c1 = c2;
c2 = temp;
}
int plus = 0;
int i = c1.length - 1, j = c2.length - 1;
while (j >= 0) {
int temp = c1[i] - ‘0‘ + c2[j] - ‘0‘ + plus;
plus = temp / 10;
c1[i] = (char)(temp % 10 + ‘0‘);
i--;
j--;
}
while (i >= 0 && plus > 0) {
int temp = c1[i] - ‘0‘ + plus;
plus = temp / 10;
c1[i] = (char)(temp % 10 + ‘0‘);
i--;
}
StringBuilder str = new StringBuilder();
if (plus > 0) {
str.append(‘1‘);
}
for (char c : c1) {
str.append(c);
}
return str.toString();
}

private static boolean check(char[] c) {
for (char aC : c) {
if (aC < ‘0‘ || aC > ‘9‘) {
return false;
}
}
return true;
}
}
























































以上是关于练习题13:整数加法的主要内容,如果未能解决你的问题,请参考以下文章

基础练习 高精度加法

基础练习 高精度加法

基础练习 高精度加法

蓝桥杯基础练习 高精度加法

[蓝桥杯][基础练习VIP]高精度加法

经典python基础小项目练习