迷茫蒟蒻求助
  • 板块学术版
  • 楼主AzusagawaKaede
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/6/6 23:32
  • 上次更新2023/11/7 01:04:24
查看原帖
迷茫蒟蒻求助
286496
AzusagawaKaede楼主2020/6/6 23:32

各位大佬

帮我看看这个高精为什么运行不出来,谢谢

#include <bits/stdc++.h>

using namespace std;

class INT
{
	private:
		
		int num[1000];
		int len;
	public:
	INT IN()
	{
		INT n; 
		int num1[1000];
		string c;
		cin >> c;
		for(int i = 0; i < c.size(); i++) this->num[c.size() - i] = c[i] - '0';
		for (int i = 0; i < c.size(); i++) this->num[i] = num1[i];
		n.len = c.size(); 
		return n;
	}
	INT OUT()
	{
		for(int i=this->len; i>=1; i--) cout << this->num[i];
	}
	INT operator+( const INT& b)
	{
		INT w;
		w.len = max(this -> len, b.len);           
		for(int i=1; i<=w.len; i++) 
		{
			w.num[i] += this -> num[i] + b.num[i]; 
			w.num[i+1] += w.num[i] / 10;    
			w.num[i] %= 10;                 
		}
		if(w.num[w.len + 1] != 0) w.len ++; 
		return w;
	}
	INT operator-(const INT& b)
	{
		INT w;
		w.len = this->len;                 
		for(int i=1; i<=w.len; i++) 
		{
			if(this->num[i] < b.num[i]) 
			{  
				this->num[i+1] --;       
				this->num[i] += 10;  
			}
			w.num[i] += this->num[i] - b.num[i];
		}
		while(w.num[w.len] == 0 && (w.len != 1)) w.len --;
		return w;
	}
	INT operator*(const INT& b)
	{
		INT w;
		int x;              
		for(int i=1; i<=this->len; i++) 
		{      
			x = 0;
			for(int j=1; j<=b.len; j++) 
			{  
				w.num[i+j-1] += this->num[i] * b.num[j] + x; 
				x = w.num[i+j-1] / 10;
				w.num[i+j-1] %= 10;          
			} 
			w.num[i+b.len] = x;  
		}
		w.len = this->len + b.len;
		while(w.num[w.len] == 0 && (w.len != 1)) w.len --;  
	}
};

int main()
{
	INT a = a.IN();
	INT b = b.IN();
	a*b.OUT();
	return 0;
}  


谢谢

2020/6/6 23:32
加载中...