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

📄 multiply.cpp

📁 能实现大数的乘法运算
💻 CPP
字号:
#include <iostream.h>
#include <math.h>
#include <string.h>
#include <stdio.h>

void multiply(char numa[],char numb[])
{
	int along=strlen(numa);
	int blong=strlen(numb);	
	char result[40000];
	char temp[20000];
	int k=0;
	for(k=0;k<40000;k++)		//结果字符串付初值
		result[k]=48;
	int temp_result;
	int carry=0;
	int tempblong=blong;
	int i=0;
	int j=0;
	while(along)
	{
		
		while(blong)
		{
			
			temp_result=(numa[along-1]-48)*(numb[blong-1]-48)+carry+(result[40000-i-j-1]-48);
			result[40000-i-j-1]=temp_result%10+48;
			carry=temp_result/10;
//			cout<<temp_result<<endl<<result[40000-i-j-1]<<endl;
//			cout<<carry<<endl;
			blong--;
			j++;
			if(j==tempblong)
				result[40000-j-i-1]+=carry;			//??????????
		}		
		blong=tempblong;	//b字符串复位
		carry=0;
		j=0;				//j复位
		along--;
		i++;
	}
//	cout<<abigerb(numa,numb)<<endl;		//检测程序运行情况所用
										
	i=0;						//消除无价值的零
	int count=0;			//计数,结果中无价值零的个数
	while(result[i]=='0')
	{
		count++;
		i++;
	}
	if(count==40000)	cout<<'0';	//结果为零的处理
	else for(i=count;i<40000;i++)
		cout<<result[count++];

}

void main()
{
	char numa[20000],numb[20000];
	char yunsuanfu;
	cout<<endl<<"please write in A:";
	cin>>numa;
	cout<<endl<<"please write in B:";
	cin>>numb;
	cout<<endl<<"please write in yunsuanfu:";
	cin>>yunsuanfu;
	
	switch(yunsuanfu)
	{
	case '*': multiply(numa,numb);	break;
	default:  break;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -