高精度! 模板代码!
来源:互联网 发布:淘宝网店为什么会关闭 编辑:程序博客网 时间:2024/06/06 06:40
前言
高精高精模拟竖式的高精!
本人在此提供模板
细节不多讲
需要注意的是
一切代码的格式都是a(+ - / *)b=c的形式
t=temp 中间变量
代码
减法
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=100100;int a[maxn],b[maxn],c[maxn];int sizea,sizeb,sizec;void swapp(){ int sizet=sizeb,t[sizeb+1]; memset(t,0,sizeof(t)); for(int i=1;i<=sizeb;i++) t[i]=b[i]; memset(b,0,sizeof(b)); for(int i=1;i<=sizea;i++) b[i]=a[i]; sizeb=sizea; memset(a,0,sizeof(a)); for(int i=1;i<=sizet;i++) a[i]=t[i]; sizea=sizet;}void init(){ string sa,sb; cin>>sa>>sb; sizea=sa.size(); sizeb=sb.size(); for(int i=0,j=sizea;i<sizea;i++,j--) a[j]=sa[i]-'0'; for(int i=0,j=sizeb;i<sizeb;i++,j--) b[j]=sb[i]-'0';}void comp(){ if(sizeb>sizea){ cout<<"-"; swapp(); } else if(sizeb==sizea){ int temp=sizeb; while(a[temp]==b[temp]) temp--; if(a[temp]<b[temp]){ cout<<"-"; swapp(); } }}void make_(){ //a>b for(int i=1;i<=sizea;i++){ c[i]=a[i]-b[i]; if(c[i]<0){ c[i]+=10; int temp=i+1; while(!a[temp]) a[temp++]=9; a[temp]--; } } sizec=sizea; while(!c[sizec]) sizec--;}void fckitout(){ for(int i=sizec;i>0;i--) cout<<c[i];}int main(){ init(); comp(); make_(); fckitout(); return 0;}
加法
#include<iostream>using namespace std;const int maxn=100001;string s1,s2;int a[maxn],b[maxn],c[maxn];int sizea,sizeb,sizec;bool aa,bb;void init(){ bool ok=false; sizea=s1.size(); sizeb=s2.size(); for(int i=0,j=sizea;i<sizea;i++,j--){ if(s1[i]=='-'){ aa=true; continue; } if(s1[i]-'0'>0) ok=true; if(!ok&&s1[i]=='0') continue; a[j]=s1[i]-'0'; } if(aa==true) sizea--; if(ok==false) sizea=1; ok=false; for(int i=0,j=sizeb;i<sizeb;i++,j--){ if(s2[i]=='-'){ bb=true; continue; } if(s2[i]-'0'>0) ok=true; if(!ok&&s2[i]=='0') continue; b[j]=s2[i]-'0'; } if(bb==1) sizeb--; if(ok==false) sizeb=1;}void jia(){ int temp=0; sizec=max(sizea,sizeb); for(int i=1;i<=sizec;i++){ c[i]=a[i]+b[i]+temp; temp=c[i]/10; c[i]%=10; } if(temp!=0){ sizec++; c[sizec]=temp; }}int main(){ cin>>s1; cin>>s2; init(); jia(); for(int i=sizec;i>=1;i--) cout<<c[i]; cout<<endl; return 0;}
乘法
//还没过样例~//明儿个noip 这坑就放这儿了
除法
//怎么想noip也不会考的吧//不用学的吧//嗯不用不用不考不考
阅读全文
0 0
- 高精度! 模板代码!
- 高精度大数的模板--c++代码
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 高精度模板
- 【模板】高精度
- java中的线程和进程-未完待续
- Spark大数据开发之旅之一:准备工作
- [复习][ZSOI2008]矩阵乘法 矩阵
- 关于Integer
- 第一个自己写的小程序
- 高精度! 模板代码!
- JDK 动态代理运行原理
- 设计模式(21)——策略 Strategy
- wifi静态iP
- 几种常用的特征选择方法
- 休闲食品招商有骗局吗?如何辨别
- [Oracle 11g r2(11.2.0.4.0)]RAC集群SCAN IP介绍
- 设计模式(22)——模板方法 Template Method
- python异常