資源簡(jiǎn)介
大整數(shù)四則運(yùn)算 BigInt 加減乘除 括號(hào) 優(yōu)先級(jí),Python支持無(wú)限精度的運(yùn)行,Java有BigInteger類,但是對(duì)C和C++就只能自己實(shí)現(xiàn),這是一個(gè)帶加減乘除運(yùn)算的實(shí)現(xiàn)。
代碼片段和文件信息
#include?????
#include?????
using?namespace?std;????
class?BigFigure{????
????string?num1num2;????
????string?outcome;????
????int?precision;????
????char?operation;????
public:????
????BigFigure(){????
????????num1=num2=“0“;????
????????outcome=“0“;????
????????precision=5;????
????}????
????string&?plus(string?&?string?&);????
????string&?subtration(string?&?string?&);????
????string&?multiplication(string?&?string?&);????
????string&?division(string?&?string?&);????
????void?show();????
????void?BigFigureInterface();????
????string?&revese(string&);????
????friend?istream&?operator>>(istream&?i?BigFigure&?a){????
?????????return?i>>a.num1>>a.operation>>a.num2;????
????}????
????~BigFigure(){?}????
};????
void?BigFigure::show(){????
????cout<<“Result:?“< }????
void?BigFigure::BigFigureInterface(){????
????BigFigure?a;????
????cout<<“*********************************************************/n“;????
????cout<<“??????Welcome...?????????????????????????????????????/n“;????
????cout<<“????????????Four?Arithmetic?Operations?of?Big?Figures/n“;????
????cout<<“*********************************************************/n/n“;????
????cout<<“Notes:/n“;????
????cout<<“???????1.?輸入形式為:A[空格或換行]O[空格或換行]B。/n“;????
????cout<<“???????2.?1中A、B為大數(shù),O為運(yùn)算符(如輸入:123456789?/?432432)。/n“;????
????cout<<“???????3.?既然處理大數(shù),就沒(méi)必要輸入小數(shù)點(diǎn)位了。/n“;????
????cout<<“???????4.?加減不能處理負(fù)號(hào),乘除可以。/n“;????
????cout<<“???????5.?用于學(xué)習(xí)交流,若發(fā)現(xiàn)錯(cuò)誤可聯(lián)系519916178@qq.com。/n/n“;????
????cout<<“Now?Start?Input?0?0?0?to?end?if?you?want?to?quit!/n/n“;????
????cout<<“[BigFigure?#]?“;????
????cin>>a;????
????while(a.operation!=‘0‘){????
????????switch(a.operation){????
????????????case?‘+‘:?a.plus(a.num1?a.num2);????
??????????????????????a.show();?break;????
????????????case?‘-‘:?a.subtration(a.num1?a.num2);????
??????????????????????a.show();?break;????
????????????case?‘*‘:?a.multiplication(a.num1?a.num2);????
??????????????????????a.show();?break;????
????????????case?‘/‘:?a.division(a.num1?a.num2);????
??????????????????????a.show();?break;????
????????????default:cout< ????????}????
????????cout<<“[BigFigure?#]?“;????
????????cin>>a;????
????}????
???//?system(“cls“);????
????cout<<“/n/n/n/n/n/n/t/t?Quited.../n/n/n/n/n/n/n“;????
????//system(“pause“);????
}????
????
string&??BigFigure::revese(string&?s){????
????char?c;????
????int?t=s.size();????
????for(int?i=0;?i ????????c=s[i];????
????????s[i]=s[t-i-1];????
????????s[t-i-1]=c;????
????}????
????return?s;????
}????
string&?BigFigure::plus(string?&str1?string?&str2){//加法運(yùn)算,未處理符號(hào)?????
????int?min=0it=0;????
????string?temp;????
????outcome.clear();????
????str1=revese(str1);????
????str2=revese(str2);????
????min=str1.size() ????for(i=0;?i ????????temp+=(str1[i]+str2[i]-96+t)%10+48;????
????????t=(st
評(píng)論
共有 條評(píng)論