其他分享
首页 > 其他分享> > 2022-6-17 真题练习

2022-6-17 真题练习

作者:互联网

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

描述

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

输入描述:

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

输出描述:

输出为一行。合法情况输出相加结果,非法情况输出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 }

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

标签:17,真题,int,flag,add,point1,point2,2022,sb
来源: https://www.cnblogs.com/benbicao/p/16384796.html