大整数乘法-C语言实现
2013-09-14 11:35
260 查看
因为字符串高地址保存的是高
位,所以在测试的时候大家要注意这个问题。我会尽快解决这个问题,附上代码如下:
#include <stdio.h> #include <string.h> #include <stdlib.h> void BigMul(char *a,char *b) { int a_len=strlen(a); int b_len=strlen(b); int i,j,n,temp,t; int *c=(int *)malloc(sizeof(int)*a_len); int *d=(int *)malloc(sizeof(int)*b_len); int result[100]={0}; for(i=0;i<a_len;i++) c[i]=a[i]-'0'; for (i=0;i<b_len;i++) d[i]=b[i]-'0'; n=a_len+b_len-1; for (i=0;i<n;i++) result[i]=0; temp=0; for(i=0;i<b_len;i++) { //t=d[i]; t=i; for (j=0;j<a_len;j++) { temp=c[j]*d[i]+result[t]; if (temp>=10) { result[t]=(temp)%10; result[t+1]+=temp/10; } else { result[t]=temp; } t++; } //n=n+a_len-1; } printf("Result:\n"); if (result[0]!=0) printf("%d",result[0]); for(i=1;i<=a_len+b_len-1;i++) printf("%d",result[i]); printf("\n"); } void main() { char a[100]={0}; char b[100]={0}; printf("Input two big numbers:\n"); scanf("%s %s",a,b); BigMul(a,b); system("pause"); }
位,所以在测试的时候大家要注意这个问题。我会尽快解决这个问题,附上代码如下:
相关文章推荐
- 用C语言实现动态数组的大整数乘法
- 大整数乘法(C语言实现)
- C语言实现大整数乘法
- C语言实现大数整数乘法
- C语言实现大整数乘法代码的完整代码及运行结果
- C语言:用递归实现将输入的整数按逆序输出。如输入12345,则输出54321。
- 实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:输入t
- 实现整数的乘法,减法和除法运算。只允许使用加号
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言实现大数乘法
- c语言实现,将一个字符串转换为对应的整数
- 一元多项式的乘法运算(C语言)实现
- c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出
- 递归方式实现打印一个整数的每一位(C语言)
- C语言实现大整型数据乘法
- 大整数算法[10] Comba乘法(实现)
- C语言实现:查找一个整数中1的个数
- 整数乘法---FFT 的递归实现
- C语言:实现N个整数排序,并插入一个整数!
- 求两个整数的最大公约数的各种算法(C语言实现)