#include<stdio.h>
#include<conio.h>
#define MAX 100000
int main()
{ long x,y;
int p;
int a[MAX];
int b[MAX];
int c[MAX];
int sum[MAX] ;
int len_a,len_b,i,j,temp,k;
while(1)
{
for (int i=0;i<MAX;i++)
{
a[i]=0;
b[i]=0;
c[i]=0;
sum[i]=0;
}
printf("请输入两个相乘的数,用*分隔\n");
scanf("%d*%d",&x,&y);
for (len_a=0;x;len_a++)
{
a[len_a]=x%10;
x=x/10;
}
for (len_b=0;y;len_b++)
{
b[len_b]=y%10;
y=y/10;
}
for (i=0;i<len_b;i++)
{
if (i!=0)
{
for (temp=len_a-1;temp>=0;temp--)
{
a[temp+1]=a[temp];
//printf("temp=%d ",a[temp+1]);
}
a[0]=0;
len_a++;
}
//printf(" ");
for (j=0;j<len_a;j++)
{
c[j]=a[j]*b[i];
//printf("%d ",c[j]);
}
p=len_a;
for (k=0;k<p;k++)
{
if (c[k]>9)
{
c[k+1]=c[k+1]+c[k]/10;
c[k]=c[k]%10;
if (c[p]!=0)
p++;
}
}
for (k=0;k<p;k++)
sum[k]=sum[k]+c[k];
for (k=0;k<p;k++)
{
if (sum[k]>9)
{
sum[k+1]=sum[k+1]+sum[k]/10;
sum[k]=sum[k]%10;
if (sum[p]!=0)
p++;
}
}
}
for (temp=p-1;temp>=0;temp--)
printf("%d",sum[temp]);
printf("\n");
}
getch();
return 0;
}
正文
大数相乘2008-03-23 13:27:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/zhaoyg/33524.html
阅读(2221) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论