[编程题]a+b
  • 热度指数:23755 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
实现一个加法器,使其能够输出a+b的值。

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


输出描述:
可能有多组测试数据,对于每组数据,
输出a+b的值。
示例1

输入

2 6
10000000000000000000 10000000000000000000000000000000

输出

8
10000000000010000000000000000000
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s;
        while ((s = br.readLine()) != null) {
            String[] str = s.split(" ");
            BigInteger a = new BigInteger(str[0]);
            BigInteger b = new BigInteger(str[1]);
            System.out.println(a.add(b));
        }
    }
}


发表于 2021-02-24 21:30:15 回复(0)
Java 解法 ,BigInteger真好用

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) System.out.println(new BigInteger(scanner.next()).add(new BigInteger(scanner.next())));
    }
}



编辑于 2020-03-18 11:43:00 回复(0)
import java.util.*;
import java.math.*;
public class Main{
    public static void main(String args[])
    {
        Scanner cin = new Scanner(System.in);
        BigInteger a,b;
        BigInteger sum;
        while(cin.hasNextBigInteger())
        {
            a=cin.nextBigInteger();
            b=cin.nextBigInteger();
            sum=a.add(b);
            System.out.println(sum);
        }
    }
}


   应该要用恰当的方法解决给定问题不是么??所以->BigInteger,没毛病。
发表于 2019-01-09 13:55:31 回复(0)
import java.util.Scanner;
import java.math.BigInteger;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            BigInteger bi1 = new BigInteger(sc.next());
            BigInteger bi2 = new BigInteger(sc.next());
            System.out.println(bi1.add(bi2));
        }
    }
}

发表于 2018-08-12 20:42:20 回复(0)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//java A+B
public class Main {

public static void main(String[] args) throws IOException {
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    String line = null;
    while ((line = input.readLine()) != null) {
        String num[] = line.split(" ");
        System.out.println(sum(num[0],num[1]));
    }
    input.close();
}
static String sum(String n,String m){
    String min=n.length()>m.length()?m:n;
    String max=n.length()>m.length()?n:m;
    int maxLen=max.length();
    int minLen=min.length();
    int i;//max的定位
    int len=min.length();
    int count=0;
    StringBuffer sb=new StringBuffer();
    for(i=0;i<len;i++){
        int num=min.charAt(minLen-i-1)+max.charAt(maxLen-i-1)-'0'-'0'+count;
        count=num/10;
        sb.append(num%10);
    }
    while(count!=0&&maxLen>i){
        int num=max.charAt(maxLen-i-1)+count-'0';
        count=num/10;
        sb.append(num%10);
        i++;
    }
    if(count!=0){
        sb.append(count);
    }
    return max.substring(0, maxLen-i)+sb.reverse().toString();
}

}

发表于 2018-05-03 17:55:01 回复(0)
import java.util.Scanner;

public class test {
public static String s="";
static int x=0;
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
while(scan.hasNext()){
String[]str=scan.nextLine().split("\\s+");
int n=0;
if(str[0].length()>str[1].length()){n=str[0].length()-str[1].length();
for (int i = 0; i < n; i++) {
str[1]=0+str[1];
}
if(x==1){
System.out.println(x+add(str[0],str[1]));
}else{
System.out.println(add(str[0],str[1]));
}
}
else{
n=str[1].length()-str[0].length();
for (int i = 0; i < n; i++) {
str[0]=0+str[0];
}
if(x==1){
System.out.println(x+add(str[1],str[0]));
}else{
System.out.println(add(str[1],str[0]));
}
}
s="";
x=0;
}
}
public static String add(String t1,String t2){
int flag=0;
for(int i=t1.length()-1;i>=0;i--){
int n=Integer.parseInt(t1.charAt(i)+"")+Integer.parseInt(t2.charAt(i)+"")+flag;
flag=0;
if(n>=10){flag=1;
n=n-10;}
if(n>=10&&i==0){
x=1;
}
s=n+s;
}
return s;
}
}
一个笨办法
编辑于 2017-04-16 15:39:40 回复(0)
切忌重复造轮子
import java.math.BigInteger;
import java.util.Scanner;

/**
 * Created by fhqplzj on 17-2-3 at 下午1:10.
 */
public class My1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            BigInteger a = new BigInteger(scanner.next());
            BigInteger b = new BigInteger(scanner.next());
            System.out.println(a.add(b));
        }
    }
}

发表于 2017-02-03 13:25:34 回复(1)

问题信息

难度:
8条回答 16651浏览

热门推荐

通过挑战的用户

查看代码