大数相乘

import java.util.Scanner;


public class PrecisionMultiplication {

    public static void main(String[] args) {

        char[] as, bs;
        Scanner input = new Scanner(System.in);
        as = input.next().toCharArray();
        bs = input.next().toCharArray();

        int ai[] = new int[as.length];
        int bi[] = new int[bs.length];
        int resi[] = new int[as.length + bs.length];

        int alen = as.length, blen = bs.length;
        for (int i = 0; i < alen; i++) ai[alen - i - 1] = as[i] - 48;
        for (int i = 0; i < blen; i++) bi[blen - i - 1] = bs[i] - 48;

        for (int i = 0; i < alen; i++) {
            for (int j = 0; j < blen; j++) {
                resi[i + j] += ai[i] * bi[j];
                resi[i + j + 1] += resi[i + j] / 10;
                resi[i + j] %= 10;
            }
        }
        int reslen = alen + blen - 1;
        while (resi[reslen] == 0 && reslen > 1) reslen--;
        for (int i = reslen; i >= 0; i--) {
            System.out.print(resi[i]);
        }
        System.out.println();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值