⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0.cpp

📁 多位乘法
💻 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 + -