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

📄 2980.cpp

📁 在北大POJ通过的高精度大整数乘法运算程序
💻 CPP
字号:
#include <iostream>
const int MAXLEN = 410;
using namespace std;

class Integer
{
public:
	int len; // 位数
	int s[MAXLEN]; // 表示整数的数组
};

Integer mul2(const Integer& a, const Integer& b)
{	  Integer c; 
      int len = a.len + b.len + 1;
      memset(c.s,0,MAXLEN*sizeof(int));
	  for (int i = 0; i < a.len; i++)
		  for (int j = 0; j < b.len; j++) 
		       {
		   	     c.s[i+j]+=a.s[i]*b.s[j];
			     c.s[i+j+1]+=c.s[i+j]/10;
		     	    c.s[i+j] = c.s[i+j] % 10;
		       }
	   while ((len > 1) && (c.s[len-1] == 0))  len--;
	   c.len = len;
	   return c;
}


int main()
{
	Integer a,b,c;
	char s[MAXLEN];
	memset(a.s,0,MAXLEN*sizeof(int));
	memset(b.s,0,MAXLEN*sizeof(int));
	cin>>s;
    a.len = strlen(s);
    for (int i = 0; i < a.len; i++)
          a.s[i] = int(s[a.len-1-i])-48;
	cin>>s;
    b.len = strlen(s);
    for (int j = 0; j < b.len; j++)
          b.s[j] = int(s[b.len-1-j])-48;
	c=mul2(a,b);
	for (int k = c.len-1; k >= 0; k--)
		cout<<c.s[k];
	return 0;
}


⌨️ 快捷键说明

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