2022-6-17 真题练习
作者:互联网
MT14 整数加法
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
描述
请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回 error 数据范围:字符串长度满足 1 \le n \le 100 \1≤n≤100输入描述:
输入为一行,包含两个字符串。输出描述:
输出为一行。合法情况输出相加结果,非法情况输出error1 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