//两个大整数相除和取余。除法用直接的减法实现,效率较低。
保存于此,后面对这种方法进行改进。应该是uva 10494 这题。
//两个大整数相除和取余。除法用直接的减法实现,效率较低。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#define MAXN 200
using namespace std;
struct bign
{
int len,s[MAXN];
bign(){ memset(s,0,sizeof(s)); len=1;}
bign(const bign& c)
{
*this=c;
}
bign(const char* num){ *this=num; }
void clean()
{//去除前导0
while(len>1 && !s[len-1]) len--;
}
string str() const
{
string res="";
for(int i=0;i<len;++i) res=(char)(s[i]+'0')+res;
return res;
}
bign operator=(const bign &b)
{
len=b.len;
for(int i=0;i<MAXN;++i)
s[i]=b.s[i];
}
bign operator=(const char *num)
{
len=strlen(num);
for(int i=0;i<len;++i) s[i]=num[len-1-i]-'0';
return *thi