正文

大数相乘2008-03-23 13:27:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zhaoyg/33524.html

分享到:

#include<stdio.h>#include<conio.h>#define MAX 100000int 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;}

阅读(2269) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册