#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
inline bool compare(string a,string b)
{
int i;
///消除前导0
for(i=0;a[i]=='0'&&i<a.size()-1;i++); a=a.substr(i,a.size()-i);
for(i=0;b[i]=='0'&&i<b.size()-1;i++); b=b.substr(i,b.size()-i);
if(a.size()==b.size()) return a>b;
return a.size()>b.size();
}
string add(string a,string b)///高精度加法
{
string c;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int carry=0,temp;
for(int i=0;i<a.size()||i<b.size();i++)
{
temp=carry;
if(i<a.size()) temp+=a[i]-'0';
if(i<b.size()) temp+=b[i]-'0';
c.push_back(char(temp%10+'0'));
carry=temp/10;
}
if(carry!=0) c.push_back(char('0'+carry));
reverse(c.begin(),c.end());
int i;
for(i=0;c[i]=='0'&&i<c.size()-1;i++);///消除前导0,但保证至少有一个
c=c.substr(i,c.size()-i);
return c;
}
string sub(string a,string b)///a-b高精度减法
{
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
string c;int carry=0;
for(int i=0;i<a.size()||i<b.size();i++)
{
int temp1=a[i]-'0'-carry,temp2=0;
if(i<b.size()) temp2=b[i]-'0';
carry=0;
if(temp1<temp2)///退位
{
temp1+=10;
carry
高精度运算板子(包括小数的高精度乘方)
最新推荐文章于 2023-08-25 10:29:38 发布
本文探讨了如何在高精度运算环境下处理小数的乘方问题,详细介绍了高精度乘方算法及其在特定板子上的实现,涵盖了计算原理和具体步骤。
摘要由CSDN通过智能技术生成