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]
- 优化代码解决组合数计算超时问题(字节豆包 | 810点数解答 | 2026-05-31 15:28:14)16
- 递归实现:求两自然数最大公约数的C语言函数(字节豆包 | 73点数解答 | 2025-12-25 14:49:12)68
- 优化代码解决组合数计算WA问题(字节豆包 | 810点数解答 | 2026-05-31 15:31:34)20
- 解决代码WA问题:修改组合数计算及消除重复排列逻辑(字节豆包 | 821点数解答 | 2026-05-31 15:32:57)15
- 修改后的组合数计算代码解决WA问题(字节豆包 | 1016点数解答 | 2026-05-31 15:34:47)16
- 优化代码解决超时问题:计算数组 f(l, r) 最小和(字节豆包 | 821点数解答 | 2026-05-10 16:15:59)17
- 优化代码解决超时问题:计算所有 f(l, r) 的和(字节豆包 | 767点数解答 | 2026-05-10 16:17:49)34
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)44
- 解决代码WA问题:修正相邻格子奇偶性计算逻辑(字节豆包 | 805点数解答 | 2026-05-16 20:06:30)22
- 能量波汇合能量总和计算代码错误修正及正确实现(字节豆包 | 665点数解答 | 2026-05-31 16:05:35)18
- 解决代码WA问题:能量波汇合新能量总和计算代码优化(字节豆包 | 901点数解答 | 2026-05-31 16:08:11)16
- 优化代码避免TLE:计算所有 f(l, r) 的和(字节豆包 | 765点数解答 | 2026-05-10 16:19:03)23