Acwing793高精度乘法

题目

给定两个非负整数(不含前导 00) A 和 B,请你计算 A×B 的值。

输入格式

共两行,第一行包含整数 A,第二行包含整数 B

输出格式

共一行,包含 A×B 的值。

数据范围

1≤A的长度≤100000

0≤B≤100000

输入样例:

复制代码
2
3

输出样例:

复制代码
6

代码

这道题的b不用专门转换为数组,因为长度并不大,所以没有这个必要去转换

java 复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String a = in.next();
        int[] a1 = new int[a.length()];
        for (int i = 0;i < a.length();i ++) {
            a1[i] = a.charAt(i) - '0';
        }
        int b = in.nextInt();
        Integer[] c = mul(a1, b);
        for (int i = c.length - 1;i >= 0;i --) {
            System.out.print(c[i]);
        }
    }

    private static Integer[] mul(int[] a1, int b) {
        List<Integer> c1 = new ArrayList<>();
        int t = 0;
        for (int i = a1.length - 1;i >= 0 || t > 0;i --) {
            if (i >= 0) {
                t += a1[i] * b;
            }
            c1.add(t % 10);
            t /= 10;
        }
        while (!c1.isEmpty() && c1.get(c1.size() - 1) == 0) c1.remove(c1.size() - 1);
        if (c1.isEmpty()) {
            c1.add(0);
        }
        return c1.toArray(new Integer[0]);

    }

}
相关推荐
养肥胖虎1 天前
Docker学习笔记:后端、数据库和反向代理怎么一起跑起来
后端·nginx·docker·postgresql·go·部署
晓杰'1 天前
从0到1实现 Balatro 游戏后端(2):NestJS框架搭建与项目结构设计
后端·websocket·typescript·node.js·游戏开发·项目实战·nestjs
无所事事O_o1 天前
二次验证码TOTP 使用说明
后端·二次验证码·谷歌验证器
ltl1 天前
Multi-Head Attention:为什么要分多个头
后端
ltl1 天前
Scaled Dot-Product:那个根号 d_k 是怎么来的'
后端
折哥的程序人生 · 物流技术专研1 天前
《Java 100 天进阶之路》第17篇:Java常用包装类与自动装箱拆箱深入
java·开发语言·后端·面试
IT_陈寒1 天前
为什么Java的Stream并行处理反而变慢了?
前端·人工智能·后端
孙6903421 天前
swf 图片转 pdf
java·后端
长安不见1 天前
从CompletionService的一个错误用法谈起
后端
空山返景1 天前
Dify RAG知识库-自部署完整指南
后端