C语言 大数相加与大数相减
来源:互联网 发布:mac忘记了管理员密码 编辑:程序博客网 时间:2024/05/17 14:29
#include <cstdio>#include <cstdlib>#include <cmath>#include <iostream>#include <cstring>using namespace std;char a[5000],b[5000];void add(){ int aa[5000]={0},bb[5000]={0},cc[5000]={0}; int la=strlen(a); int lb=strlen(b); strrev(a);strrev(b); int len=la>lb?la:lb; for(int i=0;i<la;i++) aa[i]=a[i]-'0'; for(int i=0;i<lb;i++) bb[i]=b[i]-'0'; for(int i=0;i<len;i++) cc[i]=aa[i]+bb[i]; for(int i=0;i<4000;i++) { if(cc[i]>=10) { cc[i]-=10; cc[i+1]++; } } int j; for(j=4000;cc[j]==0;j--); for(int i=j;i>=0;i--) printf("%d",cc[i]); printf("\n");}void sub(){ int flag=0;//0正1负 char c[5000]; int aa[5000]={0},bb[5000]={0},cc[5000]={0}; int la=strlen(a); int lb=strlen(b); int len=la>lb?la:lb; if(la<lb||(la==lb&&strcmp(a,b)<0)) {flag=1;strcpy(c,a);strcpy(a,b);strcpy(b,c);}//保证a大于b strrev(a);strrev(b); la=strlen(a),lb=strlen(b); for(int i=0;i<la;i++) aa[i]=a[i]-'0'; for(int i=0;i<lb;i++) bb[i]=b[i]-'0'; for(int i=0;i<len;i++){ if(aa[i]>=bb[i]) cc[i]=aa[i]-bb[i]; else { aa[i]+=10; aa[i+1]--; cc[i]=aa[i]-bb[i]; } } int j; for(j=4000;cc[j]==0&&j>=0;j--); if(j==-1)printf("0\n"); else { if(flag)printf("-"); for(int i=j;i>=0;i--) printf("%d",cc[i]); printf("\n"); }}int main(){ while(~scanf("%s %s",a,b)) { if(strcmp(a,"0")==0&&strcmp(b,"0")==0)break; //add(); sub(); } return 0;}
0 0
- C语言:大数相加与大数相减.
- C语言 大数相加与大数相减
- C语言大数相加
- c语言 大数相加
- C语言大数相加
- C语言---大数相加
- C语言实现大数相加相减和相乘
- 大数相加(C语言)
- 两个大数相加 C语言
- C语言之大数相加
- C语言 ☞ 大数相加
- 大数相乘与大数相加
- c语言大数乘法各位相加问题
- 大数相乘、大数相加、大数相减Java版本
- 大数相乘、大数相加、大数相减Java版本
- 大数相乘、大数相加、大数相减Java版本
- C语言大数相减
- 大数相加相减相乘
- 安卓基础开发-短信发送器
- 微信公众平台开发【发送消息】被动回复消息
- C语言指针学习(-)
- Nim博弈变形(anti-nim)
- android下设备权限为777却无法访问的问题
- C语言 大数相加与大数相减
- Memcached
- win 7 64位系统下 opencv2.4.9+vs2012的环境配置以及x64的运行
- CPU绑定技术
- 进程间通信-信号详解
- Java IO流 字符常用流:BufferedWriter详细解释
- 深入理解JavaScript系列(19):求值策略(Evaluation strategy)
- AudioTrack播放音频的流程
- SDKD Summer Team Contest R