大整数乘法
2013-04-22 15:25
211 查看
#include<stdio.h> #include<string.h> #define MAXLEN 200 int main(){ unsigned int a[MAXLEN+10],b[MAXLEN+10]; char str1[MAXLEN+10],str2[MAXLEN+10];//用字符数组存储大整数 unsigned int result[MAXLEN*2+10]; memset(str1,0,MAXLEN+10); memset(str2,0,MAXLEN+10); memset(result,0,sizeof(result)); scanf("%s",str1); scanf("%s",str2); int m=strlen(str1),n=strlen(str2); int i,j; //a[] and b[] for(i=0;i<m;i++) { a[i]=str1[m-1-i]-'0'; } for(j=0;j<n;j++) { b[j]=str2[n-1-j]-'0'; } for(i=0;i<m;i++){ for(j=0;j<n;j++) { result[i+j]+=a[i]*b[j]; } } for(i=0;i<MAXLEN*2;i++){ if(result[i]>=10){ result[i+1]+=result[i]/10; result[i]=result[i]%10; } } int flag=1; for(i=MAXLEN*2;i>=0;i--){ if(flag&&result[i]!=0){ flag=0; } if(!flag)printf("%d",result[i]); } if(flag){printf("0");} printf("\n"); return 0; }
相关文章推荐
- 008-大整数乘法-分治法-《算法设计技巧与分析》M.H.A学习笔记
- 用C语言实现动态数组的大整数乘法
- 带符号大整数加减法,乘法,除法,模除,指数
- 大正整数乘法(非BigInteger)及几种阶乘算法
- LeetCode | 43. Multiply Strings(大整数乘法)
- 大整数乘法
- 分治法解大整数乘法
- 大整数的乘法
- 算法——大整数乘法
- 大整数乘法
- 大整数乘法
- 实现大位整数的加/减/乘法的java工具类
- 大整数乘法以及空间性能优化
- 大整数乘法
- 整数高精度运算的库(加法,减法,乘法,除法,取模)
- 大整数运算(乘法)
- poj 2389Bull Math(大整数乘法, 水题)
- 大整数乘法 求阶乘
- 大整数乘法的Karatsuba算法实现
- 大整数乘法分而治之递归实现