高精度运算

1、高精度加法

给定两个正整数,计算它们的和。

输入格式
共两行,每行包含一个整数。

输出格式
共一行,包含所求的和。

数据范围
1≤整数长度≤100000
输入样例:
12
23
输出样例:
35

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long LL;
vector<int> a,b,res;
string m,n;
int main()
{cin >> m >> n;for(int i=m.size()-1;i>=0;i--)a.push_back(m[i]-'0');for(int i=n.size()-1;i>=0;i--)b.push_back(n[i]-'0');int t=0;int i=0;while(i<a.size()||i<b.size()||t){if(i<a.size())  t+=a[i];if(i<b.size())  t+=b[i];res.push_back(t%10);if(t>=10)   t=1;else    t=0;i++;}for(int i=res.size()-1;i>=0;i--)printf("%d",res[i]);return 0;
}

2、高精度减法

给定两个正整数,计算它们的差,计算结果可能为负数。

输入格式
共两行,每行包含一个整数。

输出格式
共一行,包含所求的差。

数据范围
1≤整数长度≤105
输入样例:
32
11
输出样例:
21

#include<iostream>
#include<vector>
#include<algorithm>using namespace std;string a,b;
vector<int> m,n,res;bool judge(vector<int> a,vector<int> b)
{if(a.size()==b.size()){for(int i=0;i<a.size();i++)if(a[i]!=b[i])return a[i]>b[i];}else    return a.size()>b.size();return true;
}void minu(vector<int> a,vector<int> b)
{int t=0;for(int i=0;i<a.size();i++){t=a[i]-t;if(i<b.size())  t-=b[i];res.push_back((t+10)%10);if(t<0) t=1;else    t=0;}while(res.size()>1&&res.back()==0)  res.pop_back();
}int main()
{cin>> a >> b;for(int i=a.size()-1;i>=0;i--)  m.push_back(a[i]-'0');for(int i=b.size()-1;i>=0;i--)  n.push_back(b[i]-'0');if(!judge(m,n)){printf("-");minu(n,m);}elseminu(m,n);for(int i=res.size()-1;i>=0;i--)    printf("%d",res[i]);return 0;
}

3、高精度乘法

给定两个正整数A和B,请你计算A * B的值。

输入格式
共两行,第一行包含整数A,第二行包含整数B。

输出格式
共一行,包含A * B的值。

数据范围
1≤A的长度≤100000,
1≤B≤10000
输入样例:
2
3
输出样例:
6

#include<iostream>
#include<vector>
#include<algorithm>using namespace std;vector<int> a,res;
int n;
string m;void mul(vector<int> a,int b)
{int t=0;for(int i=0;i<a.size();i++){t+=a[i]*b;res.push_back(t%10);t/=10;}while(t){res.push_back(t%10);t/=10;}
}int main()
{cin >> m >> n;for(int i=m.size()-1;i>=0;i--)  a.push_back(m[i]-'0');mul(a,n);for(int i=res.size()-1;i>=0;i--)    printf("%d",res[i]);return 0;
}

4、高精度除法

给定两个正整数A,B,请你计算 A / B的商和余数。

输入格式
共两行,第一行包含整数A,第二行包含整数B。

输出格式
共两行,第一行输出所求的商,第二行输出所求余数。

数据范围
1≤A的长度≤100000,
1≤B≤10000
输入样例:
7
2
输出样例:
3
1

#include<iostream>
#include<vector>
#include<algorithm>using namespace std;vector<int> a,res;
string m;
int n,t;void divide(vector<int> a,int b)
{t=0;for(int i=0;i<a.size();i++){t=t*10+a[i];res.push_back(t/b);t=t%b;}reverse(res.begin(),res.end());while(res.size()>1&&res.back()==0)  res.pop_back();
}int main()
{cin >> m >> n;for(int i=0;i<m.size();i++) a.push_back(m[i]-'0');divide(a,n);for(int i=res.size()-1;i>=0;i--)    printf("%d",res[i]);printf("\n%d",t);return 0;
}

大数运算(高精度运算)相关推荐

  1. CCF NOI1089 高精度运算

    问题链接:CCF NOI1089 高精度运算. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 输入N对位数不超过1000的正整数,求它们的和.   (编程使用strunc创建 ...

  2. 高精度运算——加减乘除法模板

    一.高精度运算基本原理 高精度运算也称之为大数运算.即:在变量运算对象的数值范围为任何数据类型所无法容纳的情况下,采用整数数组存储(用字符串表示数字).高精度运算的难度并不大,考虑不清楚的话列个竖式模 ...

  3. 关于__int128高精度运算

    参考文章 使用__int128可以实现高精度运算,但是这种大整数无法使用函数printf输出结果,所以需要手写输出 #include <bits/stdc++.h> using names ...

  4. float php 运算_系统的讲解 - PHP 浮点数高精度运算

    概述 记录下,工作中遇到的坑 ... 关于 PHP 浮点数运算,特别是金融行业.电子商务订单管理.数据报表等相关业务,利用浮点数进行加减乘除时,稍不留神运算结果就会出现偏差,轻则损失几十万,重则会有信 ...

  5. c语言用数组存储高精度数,高精度运算c语言.pptx

    <高精度运算c语言.pptx>由会员分享,可在线阅读,更多相关<高精度运算c语言.pptx(20页珍藏版)>请在人人文库网上搜索. 1.高精度运算,运算的前提条件:类型范围,确 ...

  6. 大数取余运算(详解)

    大数取余运算(详解) //(19^3 mod 23)^2 mod 31=25 //a=19 b=3 c=23 d=2 e=31 #include<stdio.h> long long po ...

  7. 2022/2/3 四舍五入 分数化简 高精度运算

    电费分段收费 1.四舍五入 b=int((b*10)+0.5)/10.0;//四舍五入到小数点后一位 2.分段的一个方法 for(i=1;i<=150;i++)cost[i]=0.4463;fo ...

  8. 大数取模运算,快速幂取模运算

    1.快速幂取模 http://www.cnblogs.com/yinger/archive/2011/06/08/2075043.html 快速幂取模就是在O(logn)内求出a^n mod b的值. ...

  9. C++ 大整数运算 高精度除法

    前言 这篇文章主要是对于大整数类的设计过程中,如何实现并改进长除法(模拟竖式法)的一个总结. 高精度除法的分类和比较 虽然有些文章在讨论大整数的除法运算时,喜欢分成高精度除以高精度和高精度除以低精度( ...

最新文章

  1. CSP 201912-1 报数 python实现
  2. 在线作图丨绘制一个含饼图的组内网络分析图(Network Analysis)
  3. 人工智能的社会、伦理与未来
  4. 框架:Spring之Aware相关接口
  5. ORACLE中的两个概念:user和schema的区别和联系
  6. .NET中的跟踪与调试(TraceDebug)
  7. PHP快速获取MySQL数据库表结构
  8. 计算机名字需要加_PC吗,ecs计算机名字
  9. 算法----并行算法
  10. laravel框架连接Oracle,laravel5.8(十四)连接oracle数据库
  11. 第七代i3核显linux驱动下载,i3-8100,装win7,集显uhd 630改版驱动完美安装
  12. (2/2) sharex录制屏幕没有声音,升级高版本的 sharex
  13. BaseFX 实习小记(一)
  14. wsdl和soap协议详细解析
  15. 学习《笨办法学phyton》(0)
  16. 20162312Java结对编程之挑战出题
  17. arcgis图斑尖角检查_运用官方扩展模块高效检查图斑尖锐角(免费教程,不用插件)...
  18. 投入≠成效,近百项指标为企业数字化把把脉
  19. python3基础教程雪峰_[雪峰磁针石博客]python3快速入门教程2数据结构1变量与赋值...
  20. js中使用正则表达式 禁止输入英文逗号

热门文章

  1. 微信小程序中使用阿里矢量字体图标
  2. jpeg图像压缩原理
  3. Win32 编程基础
  4. Red5 Client 调用 Red5 Server
  5. 关于解决NAT 类型显示“Teredo 无法获得资格”的一个案例
  6. Android flac to wav
  7. 电路中的VCC和VDD等是什么意思?
  8. 记录载入页面时与 ws://XXX地址/sockjs-node/xxx/websocket 的连接中断---解决办法
  9. linux开关机啪啪响(pop noise)的解决方案
  10. Python(21):下载模块命令-pip