資源簡介
c++ 多功能計算器
代碼片段和文件信息
#include“BigInt.h“
BigInt::BigInt()
{
digital[0]=0;???
len=0;???????//當前大整數的長度?
sign=0;?????????//符號為正
????isLegal=true;
}
BigInt::BigInt(qllong?obj)
{
????if(obj<0)
????{sign=trueobj?=?-obj;}
????else?sign?=false;
????digital[0]=obj%base;len=0;
????while(obj/=base)
????{digital[++len]?=?obj%base;}
????isLegal=true;
}
BigInt::BigInt(const?BigInt?&obj)
{
for(len=0sign=obj.sign;len<=obj.len;len++)
digital[len]=obj.digital[len];
len--;
?????isLegal=obj.isLegal;
}
BigInt&?BigInt::operator?=(const?BigInt?&obj)
{
for(len=0sign=obj.sign;len<=obj.len;len++)
digital[len]=obj.digital[len];
len--;
?????isLegal=obj.isLegal;
return?*this;
}
BigInt&?BigInt::operator?=?(QString?qstr)
{
int?i=0jk;
????if(qstr[0]==‘-‘)
????{sign=1;}
else?
????{
????????sign=0;
????????if(qstr[0]==‘+‘)
????????????qstr.remove(01);
????}
????i=qstr.length();
for(i=i-baseLENk=0;i>=sign;i-=baseLEN++k)
{
for(j=0digital[k]=0;jseLEN;++j)
????????{
????????????if(qstr[i+j]==‘?‘)continue;
????????????digital[k]=digital[k]*10+qstr[i+j].toLatin1()-‘0‘;
????????}
}
i+=baseLEN;
for(j=signdigital[k]=0;j????{
????????if(qstr[j]==‘?‘)continue;
????????digital[k]=digital[k]*10+qstr[j].toLatin1()-‘0‘;
????}
if(i==sign)k--;
len=k;
????isLegal=true;
return?*this;
}
BigInt?BigInt::operator?+(const?BigInt?&obj)
{
BigInt?sum;
if(obj.sign==sign)
{?//同號加;
int?carry=0i;
for(i=0;i<=len?&&?i?<=?obj.len;i++)
{
carry?=?carry?+digital[i]+obj.digital[i];
sum.digital[i]?=?carry%base;
carry=?carry/base;
}
for(;i<=len;i++)
{carry?=?carry?+?digital[i]?sum.digital[i]?=?carry%base?carry/=base;}
for(;i<=obj.len;i++)
{carry?=?carry?+obj.digital[i]?sum.digital[i]?=?carry%basecarry?=carry/base;}
if(carry&&i ????????else?if(carry&&i==MAXN){isLegal=false;return?*this;}
else?sum.len=i-1;
sum.sign?=?sign;
return?sum;
}
else?
{?//異號變同號減法;
sum?=?obj;sum.sign=?!sum.sign;
return?*this-sum;
}
}
BigInt?BigInt::operator?+(int?n)
{
if(n==0)
return?*this;
if((sign==1&&n<0)||(sign==0&&n>0))
{
int?tempcarry=0i=0;
if(n<0)n=-n;
BigInt?sum;
if(len==0&&n>=base){digital[1]=0;}??
do
{
temp=n%base;n/=base;
carry+=digital[i]+temp;
sum.digital[i]=carry%base;
carry=?carry/base;
i++;
}while(n);
while(i<=len)
{
carry+=digital[i];
sum.digital[i]=carry%base;
carry=carry/base;
i++;
}
if(carry&&i ????????else?if(carry&&i==MAXN){isLegal=false;return?*this;}
else?sum.len=i-1;
sum.sign=sign;
return?sum;
}
else
{
n=-n;
return?*this-n;
}
}
BigInt?BigInt::operator?-(const?BigInt?&obj)
{
const?BigInt?*sub1*sub2;
BigInt?quotient;
if(sign==obj.sign)
{?//同號減;
int?i?carry=0;
i?=?this->Cmp(obj1);????????????????//絕對值比較;
if(i==0)
return?quotient;?????????????????//返回一個零
el
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????739??2020-09-30?09:52??Calculator\.qmake.stash
?????文件???????4634??2012-10-30?15:00??Calculator\about.ui
?????文件??????15981??2017-12-20?23:03??Calculator\BigInt.cpp
?????文件???????1967??2020-09-30?10:00??Calculator\BigInt.h
?????文件??????16584??2020-09-30?10:45??Calculator\BigInt.o
?????文件??????57994??2017-12-20?23:03??Calculator\Calc.cpp
?????文件???????6179??2017-12-20?22:57??Calculator\Calc.h
?????文件??????57736??2020-09-30?10:45??Calculator\Calc.o
?????文件?????557788??2020-09-30?10:46??Calculator\Calculator
?????文件??????40743??2012-12-18?13:13??Calculator\Calculator.cpp
?????文件???????3302??2012-11-01?00:33??Calculator\Calculator.h
?????文件?????220076??2020-09-30?10:46??Calculator\Calculator.o
?????文件????????720??2017-12-20?22:56??Calculator\Calculator.pro
?????文件??????43129??2020-09-30?10:46??Calculator\Calculator.pro.user
?????文件??????28244??2012-12-18?19:56??Calculator\Calculator.pro.user.2.5pre1
?????文件??????27169??2012-10-07?11:52??Calculator\Calculator.pro.user.2.6pre1
?????文件??????23918??2020-09-30?09:51??Calculator\Calculator.pro.user.8155227.4.8-pre1
?????文件?????155859??2012-11-17?22:56??Calculator\calculator.ui
?????文件??????10104??2012-11-19?16:31??Calculator\ChildWindow.cpp
?????文件???????1314??2012-11-01?00:35??Calculator\ChildWindow.h
?????文件??????85960??2020-09-30?10:45??Calculator\ChildWindow.o
?????文件??????35133??2012-12-12?21:33??Calculator\Chinese.qm
?????文件?????119913??2012-12-12?21:34??Calculator\Chinese.ts
?????文件???????6098??2012-11-10?19:22??Calculator\Complex.cpp
?????文件???????1247??2012-11-10?19:22??Calculator\Complex.h
?????文件??????10144??2020-09-30?10:45??Calculator\Complex.o
?????文件??????14598??2012-12-18?13:13??Calculator\constant.ui
?????文件???????8795??2012-11-10?16:59??Calculator\GeneticAlgorithm.cpp
?????文件????????766??2012-11-10?16:47??Calculator\GeneticAlgorithm.h
?????文件???????6240??2020-09-30?10:45??Calculator\GeneticAlgorithm.o
............此處省略61個文件信息
評論
共有 條評論