高精度--大数减法 luogu 2142
来源:互联网 发布:中日友好靠韩国知乎 编辑:程序博客网 时间:2024/05/18 02:31
讨论 题解
最新讨论更多讨论
题目描述
高精度减法
输入输出格式
输入格式:两个整数a,b(第二个可能比第一个大)
输出格式:结果(是负数要输出负号)
输入输出样例
输入样例#1:
21
输出样例#1:
1
说明
20%数据a,b在long long范围内
100%数据0<a,b<=10的10000次方
#include<iostream>#include <cstdio>#include <ctype.h>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;const int maxn=10010;char s1[1000000],s2[1000000];char res[1000000];bool cmp(string a,string b){ if (a.size() < b.size()) return true; //当a的位数比b小时,a比b小 if (a.size() > b.size()) return false; //当a的位数比b大时,a比b大 for (int i = 0; i < a.size(); ++i) //剩余情况就是a的位数与b相同 { if (a[i] > b[i]) return false; //逐位比较 if (b[i] > a[i]) return true; } return false;}bool cmp1(string a,string b){for(int i=0;i<a.size();i++)if(a[i]!=b[i])return 0;return 1;}void jian(char *a,char *b){int lena=strlen(a);int lenb=strlen(b);if(lena!=lenb)for(int i=lenb;i<lena;i++)b[i]='0';reverse(a,a+lena);reverse(b,b+lenb);int c=0;for(int i=0;i<lena;i++){int t=(a[i]-'0')-(b[i]-'0')-c;c=(t<0);res[i]=(t+10*c)+'0';}res[lena]='\0';while(lena>1&&a[lena-1]=='0')a[--lena]='\0';reverse(res,res+lena);}int main(){cin>>s1;cin>>s2;if(cmp(s1,s2)){swap(s1,s2);cout<<"-";}if(cmp1(s1,s2)){cout<<0<<endl;return 0;}jian(s1,s2);cout<<res<<endl;return 0;}
阅读全文
0 0
- 高精度--大数减法 luogu 2142
- 高精度--大数乘法 luogu
- 高精度计算 大数减法
- 高精度 大数减法
- 大数,高精度计算---大数减法
- 大数,高精度计算---大数减法
- 高精度--大数加法 luogu 1601
- 大数减法 (高精度运算)
- 5、大数,高精度计算---大数减法
- 大数加法 减法 乘法 除法 高精度四则运算
- 大数加法 减法 乘法 除法 高精度四则运算
- 高精度减法-洛谷 2142
- 洛谷 2142高精度减法
- 整数大数模拟 高精度加法 高精度减法 高精度乘法 高精度除法 c/c++ java
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- synchronized关键字
- JavaScript面向对象的程序常用的继承方式有哪些?
- vmvare 连接 gns3并实现互联互通
- 框架基础——全面解析Java注解
- [生而为人-思考] 《人类简史》个人摘抄(时隔两年再读尤瓦尔•赫拉利)
- 高精度--大数减法 luogu 2142
- python学习——类属性与实例属性
- IE6 BUG的解决方法
- kmp详解
- 数组长度计算
- 【清华集训2017模拟】Catalan
- python单例模式
- Eclipse配置Java类文件的注释模板
- src与href的区别