题目1198:a+b

题目描述:

实现一个加法器,使其能够输出a+b的值。

输入:

输入包括两个数a和b,其中a和b的位数不超过1000位。

输出:

可能有多组测试数据,对于每组数据,
输出a+b的值。

样例输入:
2 6
10000000000000000000 10000000000000000000000000000000
样例输出:
8
10000000000010000000000000000000
 1 import java.util.Scanner;
 2  
 3 public class Main{
 4     public static void main(String[]args){
 5     Scanner in=new Scanner(System.in);
 6     while(in.hasNext()){
 7         String line=in.nextLine();
 8         String[] a=line.split(" ");
 9         char[]x=a[0].toCharArray();
10         char[]y=a[1].toCharArray();
11         int len1=x.length;
12         int len2=y.length;
13         int len=len1>len2?len1:len2;
14         char[]result=new char[len+1];
15         int j=0;
16         len=0;
17         while(len1>0||len2>0){
18         char re1=' ',re2=' ';
19         if(len1<=0&&len2>0){re1='0';re2=y[--len2];}
20         else if(len1>0&&len2<=0){re1=x[--len1];re2='0';}
21         else if(len1>0&&len2>0){re1=x[--len1];re2=y[--len2];}
22         int re=re1+re2-'0'-'0'+j;
23         if(re>=10){
24             result[len++]=(char) (re-10+'0');
25             j=1;
26         }
27         else{
28             result[len++]=(char) (re+'0');
29             j=0;
30         }
31         }
32         if(j==1){
33            result[len++]='1';
34         }
35  
36         while(len>0){
37         System.out.print(result[--len]);
38         }
39         System.out.println();
40     }
41     }
42 }
43 /**************************************************************
44     Problem: 1198
45     User: 0000H
46     Language: Java
47     Result: Accepted
48     Time:2190 ms
49     Memory:94364 kb
50 ****************************************************************/

 

posted @ 2015-05-01 12:46  打小孩  阅读(124)  评论(0编辑  收藏  举报