两数相减
来源:互联网 发布:手机淘宝不能分享链接 编辑:程序博客网 时间:2024/06/17 12:27
两数相减
描述
给定两个自然数A和B,求A-B的值。
输入
输入数据有多组,第一行为测试数据的组数n,下面的n行中,每行有两个数分别表示A,B。A和B的最大位数不超过1000位。
输出
输出A-B的值。
样例输入
3
1 1
10 2
1000 2000
样例输出
0
8
-1000
代码如下:
#include<stdio.h>#include<string.h>int main(){char a[1005],b[1005];int x[1005],y[1005],c[1005];int i,j,t,n,len,len1,k;scanf("%d",&n);while(n--){gets(a);scanf("%s%s",&a,&b);len=strlen(a);len1=strlen(b); if(len>=len1) j=len;else j=len1; memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); memset(c,0,sizeof(c));t=j-1;for(i=len-1;i>=0;i--,t--)x[t]=a[i]-'0';t=j-1;for(i=len1-1;i>=0;i--,t--)y[t]=b[i]-'0';for(i=0;i<j;i++){c[i]=x[i]-y[i];} for(k=0;k<j;k++){ if(c[k]!=0) break; } if(k==j) printf("0\n"); else { if(c[k]>0){ for(i=j-1;i!=k;i--){ if(c[i]<0){ c[i] = 10+c[i]; c[i-1]--; } } if(c[k]==0) k=k+1; for(int i=k;i<j;i++) printf("%d",c[i]); printf("\n"); } else{ for(i=j-1;i!=k;i--){ if(c[i]>0){ c[i] = c[i]-10; c[i-1]++; } } if(c[k]==0) k=k+1; printf("-"); for(int i=k;i<j;i++) printf("%d",-c[i]); printf("\n"); } }}return 0;}
阅读全文
0 0
- 两数相减
- 两数相减
- js 两数相减
- java 两数相减
- 仲篇 两数相减直至都重复
- 两数相减遇到精度数问题时,通过先均成以100相减后再除以100
- 软件设计的目标
- Mac下eclipse添加hadoop-eclipse-plugin插件
- Camera模组布线规则
- rctimer二轴云台及云台控制板调试(Simple bgc 8位破解板)
- 【问题】Eclipse报jvm terminated.exitcode=2
- 两数相减
- android后台截屏实现(3)--编译screencap
- git&github教程及命令
- |spoj 694|后缀数组|Distinct Substrings
- Android Activity中加入View后进行后台截屏截图
- oel 6.8 x86_64 + postgresql-9.6.3 使用 pg_basebackup 配置 stream 异步/同步
- No module named _caffe 和No module named caffe错误解决
- pytorch-class nn.Module
- Android——Notification(一)