标签:17 真题 int flag add point1 point2 2022 sb
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。