java高精度加法_AcWing 791. 高精度加法(Java优化了输入输出)

题目描述

blablabla

样例

blablabla

算法1

blablabla

时间复杂度分析:blablabla

Java 代码

import java.util.ArrayList;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.util.StringTokenizer;

public class Main{

public static InputReader in = new InputReader(System.in);

public static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

// static int N = 1000010;

public static ArrayList add(ArrayListA,ArrayListB){

if (A.size()

ArrayList C=new ArrayList<>();

int t = 0;

for (int i = 0; i < A.size(); i ++ )

{

t += A.get(i);

if (i < B.size()) t += B.get(i);

C.add(t % 10);

t /= 10;

}

if (t!=0) C.add(t);

return C;

}

public static void main(String[] args) throws Exception {

String a = null, b=null;

ArrayList A=new ArrayList<>();

ArrayList B=new ArrayList<>();

while(in.hasNext()) {

a=in.next();

b=in.next();

out.flush();//写在最后

}

for (int i = a.length() - 1; i >= 0; i -- ) A.add(a.charAt(i) - '0');

for (int i = b.length() - 1; i >= 0; i -- ) B.add(b.charAt(i) - '0');

ArrayList C = add(A, B);

for (int i = C.size() - 1; i >= 0; i -- ) out.print(C.get(i));

out.println();

out.close();

}

}

class InputReader{

private final static int BUF_SZ = 65536;

BufferedReader in;

StringTokenizer st;

public InputReader(InputStream in) {

super();

this.in = new BufferedReader(new InputStreamReader(in),BUF_SZ);

st = new StringTokenizer("");

}

public boolean hasNext() throws IOException {

while(!st.hasMoreTokens()){

String line = nextLine();

if(line == null){

return false;

}

st = new StringTokenizer(line);

}

return true;

}

public String next() throws IOException{

while (!st.hasMoreTokens()) {

try {

st = new StringTokenizer(in.readLine());

} catch (IOException e) {

throw new RuntimeException(e);

}

}

return st.nextToken();

}

public int nextInt() throws IOException {

return Integer.parseInt(next());

}

public double nextDouble() throws IOException {

return Double.parseDouble(next());

}

public double nextLong() throws IOException {

return Long.parseLong(next());

}

public String nextLine() throws IOException {

String line = "";

line = in.readLine();

return line;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值