【codevs 3115 3116 3117】高精度练习之加/减/乘法
来源:互联网 发布:cocos2d js 粒子效果 编辑:程序博客网 时间:2024/05/07 18:32
加
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000+1;char a[maxn],b[maxn];int ca[maxn],cb[maxn],cc[maxn];int lena,lenb,lenc;void jia(){ cin>>a; cin>>b; lena=strlen(a),lenb=strlen(b); for(int i=1;i<=lena;i++) ca[i]=a[lena-i]-'0'; for(int i=1;i<=lenb;i++) cb[i]=b[lenb-i]-'0'; lenc=1; while(lenc<=lena+2||lenc<=lenb+2) { cc[lenc]+=ca[lenc]+cb[lenc]; cc[lenc+1]+=cc[lenc]/10; cc[lenc]=cc[lenc]%10; lenc++; } while(cc[lenc]==0&&lenc>0) lenc--; if(lenc==0) { puts("0"); return; } for(int i=lenc;i>=1;i--) { printf("%d",cc[i]); }}int main(){ jia(); return 0;}
减
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=10001;char a[maxn],b[maxn];int ca[maxn],cb[maxn],cc[maxn];int lena,lenb,lenc; void jian(){ cin>>a; cin>>b; lena=strlen(a),lenb=strlen(b); for(int i=1;i<=lena;i++) ca[i]=a[lena-i]-'0'; for(int i=1;i<=lenb;i++) cb[i]=b[lenb-i]-'0'; if(lena<lenb) { for(int i=1;i<=lenb;i++) { cc[i]=ca[i]; ca[i]=cb[i]; cb[i]=cc[i]; } memset(cc,0,sizeof(cc)); cout<<"-"; } else if(lena==lenb) { for(int i=lena;i>=1;i--) { if(ca[i]>cb[i]) break; else if(ca[i]==cb[i]) continue; else { for(int j=i;j>=1;j--)//for(int j=1;j<=lena;j++) { cc[j]=ca[j]; ca[j]=cb[j]; cb[j]=cc[j]; } memset(cc,0,sizeof(cc)); cout<<"-"; break; } } } lenc=1; while(lenc<=lena+2||lenc<=lenb+2) { if(ca[lenc]<cb[lenc]) { ca[lenc]+=10; ca[lenc+1]--; } cc[lenc]=ca[lenc]-cb[lenc]; lenc++; } while(cc[lenc]==0&&lenc>0) lenc--; if(lenc==0) { puts("0"); return; } for(int i=lenc;i>=1;i--) printf("%d",cc[i]);}int main(){ jian(); return 0;}
乘
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000+1;char a[maxn],b[maxn];int ca[maxn],cb[maxn],cc[maxn];int lena,lenb,lenc;void cheng(){ cin>>a; cin>>b; lena=strlen(a); lenb=strlen(b); for(int i=1;i<=lena;i++) ca[i]=a[lena-i]-'0'; for(int i=1;i<=lenb;i++) cb[i]=b[lenb-i]-'0'; for(int i=1;i<=lena;i++) for(int j=1;j<=lenb;j++) cc[i+j]+=ca[i]*cb[j]; for(int i=1;i<=lena+lenb+2;i++) { if(cc[i]>=10) { cc[i+1]+=cc[i]/10; cc[i]%=10; } else continue; } lenc=lena+lenb+4; while(cc[lenc]==0&&lenc>0) lenc--; if(lenc==0) puts("0"); for(int i=lenc;i>=2;i--) printf("%d",cc[i]); return;}int main(){ cheng(); return 0;}
阅读全文
0 0
- 【codevs 3115 3116 3117】高精度练习之加/减/乘法
- 高精度-codevs-3117高精度练习之乘法
- Codevs 3117 高精度练习之乘法
- codevs 3117 高精度练习之乘法
- 高精度-codevs-3115高精度练习之减法
- 高精度-codevs-3116高精度练习之加法
- codevs 高精度乘法 3117
- 3117 高精度练习之乘法
- 3117 高精度练习之乘法
- 3117 高精度练习之乘法
- 【CodeVS 3123】 高精度练习之超大整数乘法
- CODEVS 3123 高精度练习之超大整数乘法
- codevs 3115 高精度练习之减法
- Codevs 3115 高精度练习之减法
- codeVS 3115 高精度练习之减法
- CODEVS 3115高精度练习之减法
- Codevs 3116 高精度练习之加法
- codevs 3116 高精度练习之加法
- 树状数组改段求段
- Tablayout的简单使用
- 【状压DP】【cofun1760】angrybirds
- 漏桶算法和令牌桶算法
- 微信支付服务商开发能力说明文档范本-微信公众号使用教程31
- 【codevs 3115 3116 3117】高精度练习之加/减/乘法
- 微信公众平台编辑器教程-微信公众号使用教程32
- 记得坚持曾经的梦想
- 泛型 _Get_deleter_pointer_type
- 短信通知限制
- WINFORM.FormBorderStyle
- [后缀自动机 DP] LOJ#6071. 「2017 山东一轮集训 Day5」字符串
- Linux下Tomcat重新启动
- 微博深度学习平台架构和实践