void Multiple(char A[], char B[], char C[]) {
int TMP, In=0, LenA=-1, LenB=-1;
while(A[++LenA] != ‘\0′);
while(B[++LenB] != ‘\0′);
int Index, Start = LenA + LenB - 1;
for(int i=LenB-1; i>=0; i-) {
Index = Start-;
if(B[i] != ‘0′) {
for(int In=0, j=LenA-1; j>=0; j-) {
TMP = (C[Index]-'0′) + (A[j]-'0′) * (B[i] - ‘0′) + In;
C[Index--] = TMP % 10 + ‘0′;
In = TMP / 10;
}
C[Index] = In + ‘0′;
}
}
}
int main(int argc, char* argv[]) {
char A[] = “21839244444444448880088888889″;
char B[] = “38888888888899999999999999988″;
char C[sizeof(A) + sizeof(B) - 1];
for(int k=0; k<sizeof(C); k++)
C[k] = ‘0′;
C[sizeof(C)-1] = ‘\0′;
Multiple(A, B, C);
for(int i=0; C[i] != ‘\0′; i++)
printf(”%c”, C[i]);
}
分享到:
相关推荐
超大整数相乘算法的VB实现源代码超大整数相乘算法的VB实现源代码
大整数相乘问题利用分而治之算法--来源于平时的作业
汇集了知名公司的一些c/c++面试题: 1、关键字static的作用是什么? 2、如何判断一段程序是由c...(这是2002年在一考研班上遇到的算法题) 4、求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)
算法分析PPT(分治法-大整数、矩阵相乘).ppt)
在计算机语言中,整数最大可以设置为unsigned long类型的,但是表示有限,当涉及到两个大整数相乘的时候,会出现不能表示的情况,鉴于此编制此算法予以解决大整数相乘。本程序使用分治法实现,将n位二进制整数X和Y都...
分治法求两个大整数相乘C++实现。
大整数的乘法 算法课程设计 比较简单大家快来看看吧
自己写的大整数相乘算法,算法里包含有大整数相加算法。
是算法分析中的一个实验 用数组实现 用二重循环控制按位交叉相乘
利用分治法设计一个计算两个n位的大整数相乘的算法,要求计算时间低于O(n2)。支持不同位数大数的相乘。
程序演示了两个任意长度的正整数相乘,采用了数组来实现。欢迎各位探讨!
自己用C++写的一个整数相加相乘的控制台程序,用字符串来实现任意位数的整数之间的相加和相乘,通过string和int的相互转化达到我们正常计算时候的过程,不受整型规定字节数的影响,刚兴趣的朋友可以参考,有什么问题...
JAVA实现的两个特大整数相乘的算法,可以达到1000位数相乘。
两个大整数相乘是一道实践意味很浓的算法题目,本文讨论了Win32下无符号大整数相乘的基本解法和两个优化算法。
分治法 两个大整数相乘(十进制的)大整数相乘C++源码.cpp
大整数相乘,仅作参考。利用竖式的。不是分治算法的喔。
4.对存储乘积累加和得数组进行十进制个位化,即数组每位存的数值不超过9,即利用对10取模取余的方法,余数留在本位,模就当是进位就往上一位累加。 5对规范化的数值倒序输出就是得到大整型数乘积的结果。
对算法分析与设计课程中大整数乘法的实现,并实现不同位数的大整数相乘
又两个数组,在每一个数组中有若干个整型数据元素,求出组合到一起之后得到的值用数组保存并打印出来
本程序实现两个100位以内的大整数相乘的算法。 大家可以借鉴一下,如果可以再改进一下就更好了。