正文

大整数相乘2006-08-10 16:10:00

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

分享到:

#include<iostream.h>
#include<stdlib.h>
#define N 10
int main()
{
    int i,j,set=0;
    char k[N];
    int a[N],b[N],c[2*N];
    for(i=0;i<N;i++)//cin.getline(c,N);//for(i=0;i<N;i++) a[i]=c[i]-48;
    {                //cin.getline(c,N);//for(i=0;i<N;i++) b[i]=c[i]-48;
        a[i]=rand()%N;
        b[i]=rand()%N;
    }
    //
    cout<<"整数A :";
    for(i=N-1;i>=0;i--)
        cout<<a[i];
    cout<<endl;
    cout<<"整数B :";
    for(i=N-1;i>=0;i--)
        cout<<b[i];
    cout<<endl;
    for(i=0;i<2*N;i++)
        c[i]=0;
    cout<<endl;
    //算法
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            c[j+i]=c[j+i]+b[i]*a[j]+set;
            set=c[j+i]/10;
            c[j+i]=c[j+i]%10;
        }
        c[j+i]+=set;
        set=0;
    }
    //
    cout<<"整数A*B=";
    for(i=2*N-1;i>=0;i--)
        cout<<c[i];
    cout<<endl;
}
运行结果:
整数A :2030296373
整数B :6669712556

整数A*B=13541493211399359388

阅读(5931) | 评论(0)


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

评论

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