import java.io.*;
//数据类封装
class IntString {
public int len;
public int[] digits;
public IntString() {
len = 0;
digits = null;
}
}
//算法实现类
public class BigInt {
public BigInt() {
}
public static void main(String[] args) throws java.io.IOException {
System.out.println("Input two large integers:");
IntString intt1 = new IntString();
IntString intt2 = new IntString();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//通过空格实现字符串分段
String str[] = (reader.readLine()).split("\\s+");
intt1.digits = convert(str[0]);
intt1.len = str[0].length();
intt2.digits = convert(str[1]);
intt2.len = str[1].length();
int[] a = intt1.digits;
int[] b = intt2.digits;
int alength = intt1.len;
int blength = intt2.len;
IntString intt3 = new IntString();
intt3.len = alength + blength - 1;
int clength = intt3.len;
int[] c = new int[1000];
for (int i = 0; i < alength; i++)
for (int j = 0; j < blength; j++)
c[i + j] += a[i] * b[j];
for (int i = 0; i < c.length; i++) {
if (c[i] > 9) {
c[i + 1] += c[i] / 10;
c[i] = c[i] % 10;
}
}
intt3.digits = c;
clength = intt3.len;
System.out.println(clength);
System.out.println("the result is: ");
for (int i = clength - 1; i >= 0; i--) {
System.out.print(c[i]);
}
}
//将字符串逆序
public static int[] convert(String str) {
int length = str.length();
int[] tem = new int[length];
for (int i = 0; i < str.length(); i++) {
tem[i] = str.charAt(length - i - 1) - '0';
}
return tem;
}
}
分享到:
相关推荐
大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码大数相乘算法源代码...
用数组进行大数相乘,解决超整形的大数相乘
大数相乘,算法源码分析,以及相关的实现
20位左右的大数相乘算法解析,用一个整型数组表示一个大数,数组的每个元素储存大数的一位数字,则实际的大数d表示为: d=a[k]*10的k-1次幂+a[k-1]*10的k-2次幂+......+a[2]*10+a[1] 其中a[0]保存该大数的位数. ...
大数相乘算法,java代码,包含独立大数相加算法 其中bigNumberPlus(String s1,String s2)为大数相加方法 bigNumberMultiply(String s1,String s2)为大数相乘方法
大数相乘算法,用CSharp实现,经过测试,应该没错了
两大数相乘,算法,数组,C语言.。。。。。。
用c实现了大数相乘,详细设计了算法等,可以用于毕业设计
大数相乘的代码及算法解析,希望对需要的人有帮助哦~
二个超出计算机数值类型的计算范围的二个数进行运算。用的算法是分治,分治是将大问题逐步简化为一个一个的小问题,先解决小问题,小问题解决完成,大问题也随之解决
主要为大家详细介绍了C++实现大数相乘的算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
用C语言写的两个大数如何相乘及在计算机上显示出结果。
快速排序算法和任意两个大数阶乘相乘算法的汇编实现,可以对你任意输入的数进行快速排序,对你任意输入数的阶乘进行求解
主要为大家详细介绍了C++实现大数相乘算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
利用分治法设计一个计算两个n位的大整数相乘的算法,要求计算时间低于O(n2)。支持不同位数大数的相乘。
闲来无事,用链表实现了一个大数相乘的算法,跟大家分享分享。
一个描述大数相乘的C语言程序,算法思想很巧妙。值得借鉴。
这是自己写的大数相乘与x的y次方大数实现,采用char类型的数组实现。大数相乘的算法还行,但是x^y当y比较大时(比如超过1000)运算速度非常的慢。自己能力有限,但是愿意跟大家分享一下。
本文实例讲述了C++实现的大数相乘算法。分享给大家供大家参考,具体如下: 昨晚校招笔试,虐的没脸睡觉,能力太渣了,但我还在码农的坑里前行,希望早日跳坑,解决衣食住行之忧。 大数相乘,是指那些相乘结果或是...
大数相乘问题的完整源代码+可执行程序,代码注释清晰,便于阅读 能进行任意位乘任意位的运算,支持正负数,输入错误的数据(不是大数)时能指出第几位错误。 若发现代码中有什么问题或是有更好的算法,欢迎与作者...