#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int MAXN=4000;
struct Bignum{
int len,s[MAXN];
string condition;
inline int max(int a,int b){
return a>b?a:b;
}
inline void swap(Bignum &a,Bignum &b)
{
Bignum t=a;
a=b;
b=t;
}
inline void BignumGet(string &s,Bignum *a,char *ch){
bool flag=true;
int k=0,k2=0;;
int record[1001]={
0};
for (auto i:s)
{
if (!(s[i]>='0'&&s[i]<=9)){
ch[k]=s[i];
k++;
record[k2]=i;
}
}
for (int i=1;i<=k2;i++)
{
}
}
Bignum()
{
len=1;
memset(s,0,sizeof(s));
}
Bignum(const char *num){*this=num;}
Bignum(int num){*this=num;}
Bignum operator=(const char *num)
{
len=strlen(num);
for (int i=0;i<len;i++)
{
s[i]=num[len-i-1]-'0';
}
return *this;
}
Bignum operator=(const string s1)
{
condition=s1;
return *this;
}
Bignum operator=(const int num)//存储
{
char a[MAXN];
sprintf(a,"%d",num);
*this=a;
return *this;
}
Bignum operator+(const Bignum &a)//重载加法
{
Bignum c;
c.len=max(len,a.len)+1;
for (int i=0,x=0;i<c.len;++i)
{
c.s[i]=a.s[i]+s[i]+x;
x=c.s[i]/10;
c.s[i]%=10;
}
if (c.s[c.len-1]==0)--c.len;
return c;
}
Bignum operator+=(const Bignum &a)
{
return *this+a;
}
Bignum operator-(Bignum &num){
//重载减法
Bignum b=*this;
Bignum a=num;
bool flag=false;
if (b<a){
swap(b,a);
flag=true;
cout<<'-';
}
b.len=max(a.len,b.len);
for (int i=0,x=0;i<b.len;i++){
if (b.s[i]<a.s[i]){
b.s[i]=b.s[i]+10-a.s[i];
b.s[i+1]--;
}else {
b.s[i]=b.s[i]-a.s[i];
}
}
while (b.s[b.len-1]==0)b.len--;
return b;
}
Bignum operator*(const Bignum &a)//重载高精度乘法
{
Bignum c;
c.len=len+a.len;
for (int i=0;i<len;i++)
{
for (int j=0;j<a.len;j++)
{
c.s[i+j]+=a.s[j]*s[i];
c.s[i+j+1]+=c.s[i+j]/10;
c.s[i+j]%=10;
}
}
while(c.s[c.len-1]==0)c.len--;
return c;
}
Bignum operator*(const int a)//乘法
{
Bignum c=a;
return *this*c;
}
Bignum operator*=(const Bignum &a)
{
*this=*this*a;
return *this;
}
bool operator <(const Bignum&x)const{
//重载<号
if (len!=x.len) return len<x.len;
for (int i=len-1;i>=0;i--)
{
if (s[i]!=x.s[i])return s[i]<x.s[i];
}
return false;
}
bool operator >(const Bignum&x)const{
return x<*this;}//重载>号
bool operator <=(const Bignum&x)const{
return !(x<*this);}//重载<=号
bool operator >=(const Bignum&x)const{
return !(*this<x);}//重载>=号
bool operator ==(const Bignum&x)const{
return !(x<*this||x>*this);}//重载==号
bool operator !=(const Bignum&x)const{
return (x<*this||x>*this);}//重载!=号
};
ostream &operator<<(ostream &out,const Bignum&x){
//输出流
if (x.condition.empty()){
cout<<x.condition;
string a;
return out;
}
for (int i=x.len-1;i>=0;i--)
cout<<x.s[i];
return out;
}
istream &operator>>(istream &in,Bignum&x){
//输入流
char num[MAXN];
in>>num;
x=num;
return in;
}
int main()
{
Bignum a,b;
cin>>a;
cout<<a*99;
}
还没有评论,来说两句吧...