📄 0.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#define max 15
int *Multiply(int A[max],int B[max],int *C)
{
int i,j,w;
int X,Y,Z;
int Avalid=0; //Avalid=validating bits of A
int Bvalid=0; //Bvalid=validating bits of B
int Cvalid=0; //Cvalid=validating bits of c
while (A[Avalid]==0 && Avalid<max)
Avalid++; //计算Avalid
while (B[Bvalid]==0 && Bvalid<max)
Bvalid++;
for(i=0;i<2*max;i++){C[i]=0;} //将C清零初始化
for(i=max-1;i>=Avalid;i--)
for(j=max-1;j>=Bvalid;j--) //逐位进行相乘运算
{
X=A[i]*B[j];
Y=X/10;
Z=X-10*Y;
w=i+j+1;
C[w]=C[w]+Z;
C[w-1]=C[w-1]+(C[w]/10)+Y;
C[w]=C[w]%10;
}
/* while (C[Cvalid]==0 && Cvalid<max)
Cvalid++;//计算Bvalid
for(i=Cvalid;i<2*max;i++)
{
cout<<C[i];
}*/
return C;
}
void main ()
{
int a[max],b[max],c[2*max],*p,pvalid=0;
int i;
for(i=0;i<max;i++)
{
a[i]=rand()%10;
}
for(i=0;i<max;i++)
{
b[i]=rand()%10;
}
for(i=0;i<max;i++)
{
cout<<a[i];
}
cout<<endl;
for(i=0;i<max;i++)
{
cout<<b[i];
}
cout<<endl;
p=Multiply( a, b,c);
while (p[pvalid]==0 && pvalid<2*max)
pvalid++;//计算Bvalid
for(i=pvalid;i<2*max;i++)
{
cout<<p[i];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -