大整数乘法。。。。。
2010-08-31 14:29
351 查看
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <memory.h> #define MAX 10001 int bigchenfa(int *sum,int *a,int *b,int lsum,int la,int lb) { int i,j,k ; memset(sum,0,sizeof(sum)); lsum = 0 ; for(i=1 ; i<= la ; i++) /*用数组模拟运算*/ for(j=1,lsum=i-1; j<= lb ; j++) {sum[++lsum] += b[j] * a[i] ;printf("sum[%d] = %d/n",lsum,sum[lsum]);} for(i=1 ; i<= lsum ; i++)/*进位处理*/ if (sum[i] >= 10) { if ( sum[lsum] >= 10) lsum ++ ; sum[i+1] += sum[i] / 10 ; sum[i] %= 10 ; } return lsum ; } int main(void) { int a[MAX]={0},b[MAX]={0},sum[MAX*2]={0} ; int la=0,lb=0,lsum=0; int i,j ; char sa[MAX],sb[MAX] ; scanf("%s %s",sa,sb); la = strlen(sa); lb = strlen(sb); for(i=1,j=la-1; i<= la ; i++,j--) {a[i] = sa[j] - '0' ; printf("a[%d] = %d",i,a[i]);} for(i=1,j=lb-1; i<= lb ; i++,j--) b[i] = sb[j] - '0' ; lsum = bigchenfa(sum,a,b,lsum,la,lb); for(i=lsum;i>= 1;i--) printf("%d",sum[i]); printf("/n"); system("pause"); return 0 ; }
相关文章推荐
- 模板:大整数乘法
- 使用快速傅里叶变换计算大整数乘法-代码
- 整数大数模拟 高精度加法 高精度减法 高精度乘法 高精度除法 c/c++ java
- 大整数算法[10] Comba乘法(实现)
- 大整数乘法
- 高精度计算-大整数乘法
- 百炼 2980 大整数乘法
- ACM-大整数乘法
- HDU 1402 A * B Problem Plus (FFT, 大整数乘法)
- [codevs3123]大整数乘法(快速傅立叶变换FFT)
- 大整数操作(加、减和未完成的乘法)
- 线性表-大整数乘法(数据结构基础 第2周)
- 大整数乘法
- 大整数乘法--leetcode Multiply Strings
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用快速傅里叶变换计算大整数乘法
- 大整数乘法---FFT算法
- 大整数的乘法运算
- 算法之【大整数乘法】
- 使用快速傅里叶变换计算大整数乘法