Java实现:突破long范围限制,模拟人工竖式运算大数字乘法
以下是使用Java实现模拟人工竖式运算的算法: ```java import java.util.Arrays; public class Multiplication { public static void main(String[] args) { String num1 = "123456789"; String num2 = "987654321"; int[] result = multiply(num1, num2); System.out.println(Arrays.toString(result)); } public static int[] multiply(String num1, String num2) { int m = num1.length(); int n = num2.length(); int[] res = new int[m + n]; for (int i = m - 1; i >= ; i--) { for (int j = n - 1; j >= 0; j--) { int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0'); int p1 = i + j; int p2 = i + j + 1; int sum = mul + res[p2]; res[p1] += sum / 10; res[p2] = sum % 10; } } return res; } } ``` 这里将输入的数字字符串转换为整型数组,然后通过嵌套循环遍历两个数的每一位,按照模拟人工竖式运算的方法进行乘法操作,并将结果存储在res数组中。最后返回结果数组。 注意:由于数字可能非常大,超过long所能表示的范围,所以这里使用了整型数组来表示结果。结果数组的每一位存储对应位的乘积结果。 ######[AI写代码神器 | 1022点数解答 | 2024-03-17 10:59:43]
- 递归实现:求两自然数最大公约数的C语言函数(字节豆包 | 73点数解答 | 2025-12-25 14:49:12)46
- C 语言实现超实用学生管理系统:含插入、删除、修改、查询及文件存储功能 (字节豆包 | 2323点数解答 | 2024-11-01 02:41:20)268
- C++代码:精准统计区间 [n, m] 内 0 - 9 数字出现次数(字节豆包 | 446点数解答 | 2025-11-24 19:02:09)91
- 一行代码搞定!数字表达式乘加运算结果对 10000 取模输出 (字节豆包 | 570点数解答 | 2025-11-26 20:26:12)47
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)405
- 复杂逻辑:探秘 getUpdateVersion 方法的条件判断与返回值计算(字节豆包 | 109点数解答 | 2025-05-24 02:02:46)181
- 代码优化:改进回文数与质数判断函数及代码风格(字节豆包 | 298点数解答 | 2025-01-25 21:27:32)321
- 叠数递归函数代码报错修复:解决 main 函数重复定义问题(字节豆包 | 314点数解答 | 2025-11-05 14:59:16)80
- 代码纠错:函数求余弦近似值代码问题分析与修正方案(字节豆包 | 957点数解答 | 2025-12-10 22:32:40)47
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)305
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1134
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)36