大数相减(A -B)(A>B)
来源:互联网 发布:如何修改网络游戏数据 编辑:程序博客网 时间:2024/06/06 05:27
#include<cstdio>#include<string.h>#include<malloc.h>#include<stdlib.h>#define M 100000int main(){ int T; scanf("%d",&T); while(T--) { char *a,*b; a=(char*)malloc(sizeof(char)*M); b=(char*)malloc(sizeof(char)*M); scanf("%s%s",a,b); int i,j,alen,blen; alen=strlen(a); blen=strlen(b); int *aa,*bb; aa=(int*)malloc(sizeof(int)*alen); bb=(int*)malloc(sizeof(int)*alen); for(i=0;i<alen;i++) aa[i]=bb[i]=0; for(i=alen-1,j=0;i>=0;i--,j++) aa[j]=a[i]-'0'; for(i=blen-1,j=0;i>=0;i--,j++) bb[j]=b[i]-'0'; int *c; c=(int*)malloc(sizeof(int)*alen); for(i=0;i<alen;i++) c[i]=0; for(i=0;i<alen;i++)//此种与下面注释1的相同 c[i]=aa[i]-bb[i];//注意此处不是c[i]=a[i]-b[i];无意义 for(i=0;i<alen;i++) { //c[i]+=aa[i]-bb[i];//注释1 //{if(c[alen-1]<1)//这种格式与下面的这种注释2{}相对应 //alen-=1;} if(c[i]<0) { c[i]+=10; c[i+1]-=1; } } for(i=alen-1;i>=0&&c[i]==0;i--) ; if(i>=0) for(;i>=0;i--) printf("%d",c[i]); else printf("0"); printf("\n"); /*{ for(i=alen-1;i>=0;i--)//注释2 printf("%d",c[i]); printf("\n"); } */ free(a); free(b); free(aa); free(bb); free(c); } return 0;}/*void dele(char *a,char *b)//假设alen>beln { if(a==NULL||b==NULL) return ; int i,j,alen,blen; int lmax,lmin,p=0; alen=strlen(a); blen=strlen(b); int *aa,*bb; aa=(int*)malloc(sizeof(int)*alen); bb=(int*)malloc(sizeof(int)*alen); for(i=0;i<alen;i++) aa[i]=bb[i]=0; for(i=alen-1,j=0;i>=0;i--,j++) aa[j]=a[i]-'0'; for(i=blen-1,j=0;i>=0;i--,j++) bb[j]=b[i]-'0'; int *c; c=(int*)malloc(sizeof(int)*alen); for(i=0;i<alen;i++) c[i]=0; for(i=0;i<alen;i++)//此种与下面注释1的相同 //去0输出 c[i]=aa[i]-bb[i]; for(i=0;i<alen;i++) { //c[i]+=aa[i]-bb[i];//注释1 //{if(c[alen-1]<1)//这种格式最后的输出与下面的注释2{}相对应 //alen-=1; } if(c[i]<0) { c[i]=c[i]+10; c[i+1]=c[i+1]-1; } } for(i=alen-1;i>=0&&c[i]==0;i--) ; if(i>=0) for(;i>=0;i--) printf("%d",c[i]); else printf("0"); printf("\n"); //{for(i=alen-1;i>=0;i--)//注释2 //printf("%d",c[i]); // printf("\n");} free(aa); free(bb); free(c); }int main(){ int T; scanf("%d",&T); while(T--) { char *a,*b; a=(char*)malloc(sizeof(char)*M); b=(char*)malloc(sizeof(char)*M); scanf("%s%s",a,b); dele(a,b); free(a); free(b); } return 0;}
0 0
- 大数相减(A -B)(A>B)
- 小数A+B(大数)
- A/B Problem(大数)
- 大数A*B(大数乘) 浙江工业大学
- NYOJ A+B Problem II(大数A+B)
- HDOJ 1002 A + B Problem II(大数A+B)
- HDOJ 1002 A + B Problem II(大数A+B)
- NYOJ-A+B-513(大数)
- 杭电A+B problem1002 (大数)
- 大明的A+B!(大数)
- A × B problem(大数相乘算法)
- 大明A+B(hdu1753)大数,java
- 大数求和(A+B) JAVA
- 大数问题(大明A+B)
- a+b(满足大数相加)
- HPUOJ1163: 大数A + B [字符串](水)
- A + B Problem II(大数加法)
- A + B Problem II (大数加法)
- 重在于平时的努力,而不是临时抱佛脚
- Android 屏幕适配01
- 常用的nginx 配置
- 树的重心学习小记 Poj 1655 Balancing Act
- vc判断操作系统类型
- 大数相减(A -B)(A>B)
- REST架构与SOAP WebService的比较
- 页面的最小宽度
- Android 读取Assets中图片
- 在linux (64bit)下安装rar for linux
- 韦德是梦八“救火队员“
- Binary Tree
- Find them, Catch them
- 【详解】Hibernate 继承映射