当前位置: 首页 > news >正文

高精度

1、加法
vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) { return add(B, A); } vector<int> C;int t = 0;//t作为两个相加的中转处 for (int i = 0; i < A.size(); i ++ ){ t += A[i]; if (i < B.size()) {t += B[i];} C.push_back(t % 10); t /= 10; } if (t) {C.push_back(t);} return C; }

2、减法
`bool cmp(vector &A, vector &B)
{
if (A.size() != B.size()) return A.size() > B.size();

for (int i = A.size() - 1; i >= 0; i -- )if (A[i] != B[i])return A[i] > B[i];return true;

}

vector sub(vector &A, vector &B)
{
vector C;
for (int i = 0, t = 0; i < A.size(); i ++ )
{
t = A[i] - t;
if (i < B.size()) t -= B[i];
C.push_back((t + 10) % 10);
if (t < 0) t = 1;
else t = 0;
}

while (C.size() > 1 && C.back() == 0) C.pop_back();
return C;

}

int main()
{
string a, b;
vector A, B;
cin >> a >> b;
for (int i = a.size() - 1; i >= 0; i -- ) A.push_back(a[i] - '0');
for (int i = b.size() - 1; i >= 0; i -- ) B.push_back(b[i] - '0');

vector<int> C;if (cmp(A, B)) C = sub(A, B);
else C = sub(B, A), cout << '-';//减法要注意判断被减数,提前输出负号
for (int i = C.size() - 1; i >= 0; i -- ) cout << C[i];
cout << endl;return 0;

}`

3、乘法
vector<int> mul(vector<int> &A, int b) { vector<int> C; int t = 0; for (int i = 0; i < A.size() || t; i ++ ) { if (i < A.size()) {t += A[i] * b;} C.push_back(t % 10); t /= 10; } while (C.size() > 1 && C.back() == 0) C.pop_back(); return C; }

4、除法
`vector div(vector &A, int b, int &r)
{
vector C;
r = 0;
for (int i = A.size() - 1; i >= 0; i -- )
{
r = r * 10 + A[i];
C.push_back(r / b);
r %= b;
}
reverse(C.begin(), C.end());
while (C.size() > 1 && C.back() == 0) C.pop_back();
return C;
}

int main()
{
string a;vector A;
int B;cin >> a >> B;
for (int i = a.size() - 1; i >= 0; i -- ) {A.push_back(a[i] - '0');}

int r;//r是余数
auto C = div(A, B, r);for (int i = C.size() - 1; i >= 0; i -- ) cout << C[i];
cout << endl << r << endl;
return 0;

}`

http://www.hskmm.com/?act=detail&tid=31877

相关文章:

  • 深入解析:Leetcode+Java+图论+岛屿问题
  • 简单介绍
  • agent技术框架
  • agent认知与原理分析
  • agent策略分析与Parer解读
  • Visual Studio 2022连接mysql数据库,解决System.Data.Odbc.OdbcException (0x80131937)
  • day05
  • [AI生成]Spark-TTS个人理解
  • 2025.10.3 测试
  • [20251015]建立和完善col_vlist.sql脚本.txt
  • [20251014]建立和完善col_list.sql脚本.txt
  • [20251014]建立完善通用的prx.sql脚本.txt
  • 倍增法
  • 复杂版式与印章干扰下的高精度社会团体法人登记证书识别技术
  • 征程 6 | BPU trace 简介与实操
  • 2025年预应力千斤顶厂家最新权威推荐榜:批发采购、张拉设备、同步顶升系统专业供应商综合测评与选购指南
  • 2025.10.15训练记录
  • 利用Next.js中间件漏洞实现SSRF攻击与RCE
  • 三级医疗服务体系 (Three Tiers of Care)
  • 2025年瑕疵检测设备厂家最新推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司推荐!
  • 2025年冷却塔厂家最新推荐排行榜:高效制冷与稳定性能之选!
  • 牛客2025秋季算法编程训练联赛1
  • 2025 年风淋室厂家选哪家?广州灵洁凭技术专利与全链服务打造净化设备优质之选
  • 251015读书报告
  • MySQL
  • 元推理框架的诞生,是绝对真实的证明,彻底击溃虚无论
  • JAVA8 map flatmap用法
  • Spring bean初始化过程
  • 吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础 课后习题和代码实践
  • 【Windows】如何管理电脑磁盘文件,保持简洁 - 教程