大整数乘法(C语言)
2013-11-13 13:07
197 查看
大整数乘法
一、C程序源码
#include<stdio.h>
#include<stdlib.h>
#include"string.h"
#define len 20
int main()
{
int i,j,t,n,temp;
char mult1[len];
char mult2[len];
printf("Input two big numbers:\n");
scanf("%s %s",mult1,mult2);
int len1 = strlen(mult1);
int len2 = strlen(mult2);
int *c1 = (int *)malloc(sizeof(int)*len1);
int *c2 = (int *)malloc(sizeof(int)*len2);
for(i=0; i<len1; i++)
c1[i]=(int)mult1[i]-48;
for(i=0; i<len2; i++)
c2[i]=(int)mult2[i]-48;
int *result = (int *)malloc(sizeof(int)*(len1+len2));
n=len1+len2-1;
for(i=0; i<=n; i++)
result[i]=0;
temp=0;
for(i=len2-1; i>-1; i--)
{
t=c2[i];
for(j=len1-1; j>-1 ;j--)
{
if((temp=result
+t*c1[j])>=10)
{
result
=(temp);
result[n-1]+=temp/10;
}
else
result
=temp;
n--;
}
n=n+len1-1;
}
printf("Result: ");
if(result[0]!=0)
printf("%d",result[0]);
for(i=1;i<=len1+len2-1;i++)
printf("%d",result[i]);
printf("\n");
return 0;
}
二、运行结果截图
一、C程序源码
#include<stdio.h>
#include<stdlib.h>
#include"string.h"
#define len 20
int main()
{
int i,j,t,n,temp;
char mult1[len];
char mult2[len];
printf("Input two big numbers:\n");
scanf("%s %s",mult1,mult2);
int len1 = strlen(mult1);
int len2 = strlen(mult2);
int *c1 = (int *)malloc(sizeof(int)*len1);
int *c2 = (int *)malloc(sizeof(int)*len2);
for(i=0; i<len1; i++)
c1[i]=(int)mult1[i]-48;
for(i=0; i<len2; i++)
c2[i]=(int)mult2[i]-48;
int *result = (int *)malloc(sizeof(int)*(len1+len2));
n=len1+len2-1;
for(i=0; i<=n; i++)
result[i]=0;
temp=0;
for(i=len2-1; i>-1; i--)
{
t=c2[i];
for(j=len1-1; j>-1 ;j--)
{
if((temp=result
+t*c1[j])>=10)
{
result
=(temp);
result[n-1]+=temp/10;
}
else
result
=temp;
n--;
}
n=n+len1-1;
}
printf("Result: ");
if(result[0]!=0)
printf("%d",result[0]);
for(i=1;i<=len1+len2-1;i++)
printf("%d",result[i]);
printf("\n");
return 0;
}
二、运行结果截图
相关文章推荐
- 超大整数乘法运算——C语言
- 用C语言实现动态数组的大整数乘法
- C语言 大整数乘法,模拟人工计算
- C语言实现大整数乘法代码的完整代码及运行结果
- C语言实现大数整数乘法
- 大整数乘法(C语言实现)
- [笔记]一道C语言面试题:大整数乘法
- C语言实现大整数乘法
- 大整数乘法-C语言实现
- 大整数问题,乘法,加法,阶乘
- 大整数加法——C语言
- 数字0到9999转换大写汉字整数程序(C语言实现)
- C语言实现整数划分问题
- C语言整数相加
- Java中大整数乘法
- 大整数乘法
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言实现大整型数据乘法
- 用分治算法编程实现两个n位十进制大整数的乘法运算
- (面试题)请用C语言实现在32位环境下,两个无符号长整数相加的函数,相加之和不能存储在64位变量中