好奇
  • 板块学术版
  • 楼主yangfengzhao
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/5 23:02
  • 上次更新2024/9/6 14:44:40
查看原帖
好奇
1049846
yangfengzhao楼主2024/9/5 23:02
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;

class Numbers
{
	private:
		int len;
		char sign;
		short array[10000];
	public:
		Numbers()
		{
			len=1;
			sign='+';
			for(int index=0;index<=9999;index++)
			{
				array[index]=0;
			}
		}
		Numbers operator +(const Numbers current)
		{
			Numbers result;
			result=*this;
			return result;
		}
		friend InputStream operator >>(InputStream stream,Numbers &temporary)
		{
		 	int index=1;
			char string[10000];
			while(true)
			{
				if(temporary.sign=='+')
				{
					temporary.sign='+';
				}
				else
				{
					temporary.sign='-';
				}
				stream>>string[index];
				if(index==1&&string[index]=='-')
				{
					temporary.sign='-';
					index--;
				}
				else
				{
					;
				}
				if(string[index]=='\n'||string[index]==' ')
				{
					string[index]=0;
					break;
				}
				else
				{
					;
				}
				index++;
			}
			temporary.len=index;
			for(int index=9999;index>=9999-strlen(string+1);index--)
			{
				temporary.array[index]=string[9999-index+1]-48;
			}
			return stream;
		}
		friend OutputStream operator <<(OutputStream stream,Numbers temporary)
		{
			if(temporary.sign=='-')
			{
				stream<<'-';
			}
			for(int index=9999;index>=9999-temporary.len+2;index--)
			{
				stream<<temporary.array[index];
			}
			return stream;
		}
};
int main()
{
	Numbers a,b;
	In>>a>>b;
	a=a+b;
	Out<<a;
}

先说明:In与Out是其他类的,保证正确,只是a=a+b,有点懵,没定义operator =就能使用...

2024/9/5 23:02
加载中...