2022-6-17 真题练习

MT14 整数加法
 
warning 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。

描述

请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回 error
 
数据范围:字符串长度满足 1 \le n \le 100 \1n100 

输入描述:

输入为一行,包含两个字符串。

输出描述:

输出为一行。合法情况输出相加结果,非法情况输出error
 1 import java.util.*;
 2 public class Main{
 3     public static void main(String[] args){
 4         
 5         Scanner sc=new Scanner(System.in);
 6         while (sc.hasNext()){
 7             String s1=sc.next();
 8         String s2=sc.next();
 9         boolean flag=true;
10         for (int i=0;i<s1.length();i++){
11             char c=s1.charAt(i);
12             if (c<'0'||c>'9') flag=false;
13         }
14         for (int i=0;i<s2.length();i++){
15             char c=s2.charAt(i);
16             if (c<'0'||c>'9') flag=false;
17         }
18         if (flag){
19             int add=0,point1=s1.length()-1,point2=s2.length()-1;
20             StringBuilder sb=new StringBuilder();
21             while (point1>=0||point2>=0){
22                 char c1=point1>=0?s1.charAt(point1):'0';
23                 char c2=point2>=0?s2.charAt(point2):'0';
24                 int temp=(c1-'0')+(c2-'0')+add;
25                 if (temp>=10){
26                     add=1;
27                     temp-=10;
28                 }
29                 sb.append(temp);
30                 point2--;
31                 point1--;
32             }
33             if (add!=0) sb.append(1);
34             sb.reverse();
35             System.out.println(sb.toString());
36         }else{
37             System.out.println("error");
38         }
39         }
40         
41         
42     }
43 }

思路:遍历两个 字符串判断是否都为数字 合法性。 利用数组进行相加减

posted on 2022-06-17 10:19  阿ming  阅读(28)  评论(0编辑  收藏  举报

导航