高精度(加分,乘法)

A+B plus

题目描述

给定两个非负整数 a,ba,b,请你输出 a+ba+b 的值。

输入描述

输入共一行,包含两个整数 a,ba,b。

0≤a,b≤10500≤a,b≤1050。

输出描述

输出共一行,包含一个整数,表示答案。

输入输出样例

示例 1

输入

123 456

输出

579
import java.util.Scanner;

public class AaddB {
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        String a=scanner.next();
        String b=scanner.next();
        System.out.println(fun(a,b));
    }
    public static String fun(String a,String b){
        int aLength=a.length()-1;
        int bLength=b.length()-1;
        StringBuilder ans=new StringBuilder();
        int carry=0;
        while(aLength>=0||bLength>=0||carry>0){
            int digit1=(aLength>=0)?a.charAt(aLength--)-'0':0;
            int digit2=(bLength>=0)?b.charAt(bLength--)-'0':0;
            int sum=digit1+digit2+carry;
            carry=sum/10;
            ans.append(sum%10);
        }
        return ans.reverse().toString();
    }
}

 

老太太

题目描述

计算 A×BA×B​ 。

输入描述

每一行将包含两个整数 AA 和 BB。备注:每个整数的长度不能超过 1000010000。

输出描述

输出 A×BA×B 。

输入输出样例

示例 1

输入

1000
2

输出

2000
import java.util.Scanner;

public class AXB {
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        String a=scanner.nextLine();
        String b=scanner.nextLine();
        System.out.println(fun(a,b));
    }
    public static String fun(String a,String b){
        if(a.equals("0")||b.equals("0")) return "0";
        int len1=a.length();
        int len2=b.length();
        int[] ans=new int[len1+len2];
        for(int i=len1-1;i>=0;i--){
            int digit1=a.charAt(i)-'0';
            for(int j=len2-1;j>=0;j--){
                int digit2=b.charAt(j)-'0';
                int product=digit1*digit2;
                int pos=i+j+1;  // 当前位的位置
                int sum=product+ans[pos];
                ans[pos]=sum%10;
                ans[pos-1]+=sum/10;  // 进位加到前一位
            }
        }
        StringBuilder res=new StringBuilder();
        for(int digit:ans){
            if(!(res.length()==0&&digit==0)){
                res.append(digit);
            }
        }
        return res.toString();
    }
}

 

你可能感兴趣的:(算法,数据结构,蓝桥杯,高精度)