杭电1002
Posted fightkun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电1002相关的知识,希望对你有一定的参考价值。
这是改用java做题的第三题
想要记录一下做题时出现的傻傻的问题
1、输出的标点符号都是英文
2、有关进位的题目要注意进位、和进位之后的第二次进位
3、注意前导零的删除
下面 就是代码了:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); for(int i = 1;i<=a ;i++) { int mark = 0; StringBuffer sb = new StringBuffer(); String bb = sc.next(); StringBuffer sb1 = new StringBuffer(bb); String b = sb1.reverse().toString(); String cc = sc.next(); StringBuffer sb2 = new StringBuffer(cc); String c = sb2.reverse().toString(); char[] arrb = b.toCharArray(); char[] arrc = c.toCharArray(); int bn = arrb.length; int cn = arrc.length; if(bn>=cn) { for(int j = 0;;j++) { if(j>=bn) { if(mark==1) { sb.append(1); } break; } if(j<cn) { int sum = ((int)arrb[j]-48)+((int)arrc[j]-48); if(mark == 1) { sum++; } if(sum<10) { mark = 0; sb.append(sum); }else { mark = 1; sb.append(sum%10); } }else { int sum = (int)arrb[j]-48; if(mark==1) { sum++; mark = 0; if(sum == 10) { mark = 1; sum = 0; } } sb.append(sum); } } } else { for(int j = 0;;j++) { if(j>=cn) { if(mark==1) { sb.append(1); } break; } if(j<bn) { int sum = ((int)arrb[j]-48)+((int)arrc[j]-48); if(mark == 1) { sum++; } if(sum<10) { mark = 0; sb.append(sum); }else { mark = 1; sb.append(sum%10); } }else { int sum = (int)arrc[j]-48; if(mark==1) { sum++; mark = 0; if(sum==10) { mark = 1; sum = 0; } } sb.append(sum); } } } System.out.println("Case "+i+":"); System.out.println(bb+" + "+cc+" = "+sb.reverse().toString()); if(i!=a) { System.out.println(); } } sc.close(); } }
祝自己在java做题的这条路上越走越远吧!!!
以上是关于杭电1002的主要内容,如果未能解决你的问题,请参考以下文章