1. 程式人生 > >杭電1002

杭電1002

== 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