杭電1002
阿新 • • 發佈:2018-08-26
== tin sca lose string system.in app 代碼 sum
這是改用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