大数减法
来源:互联网 发布:ubuntu搜狗输入法异常 编辑:程序博客网 时间:2024/05/29 15:28
大数减法
计算出前面那个大数减去后面那个大数的差;
1;刚搞清了大数加法,现在让我们来敲出大数减法。打出了大数加法的,相信都对数组这方面已经有点熟悉了吧。然而我们不能骄傲,这方面我们才开始起航,现在我们再接再厉敲出大数减法吧;
2;大数减法其实与大数加法是十分类似的,只有两点不同。
(1;是判断什么时候输出负号。
(2;怎么向前面借1;(这点相当于加法的进位)
3;输出负号;两种情况,第一种就是刚开始换边了,说明后面那个大数要远远大于前面的那个,则要输出负号。第二种就是两个数组长度相同时,最后跳出计算后还借了一个1,则表示为负数,要输出负号。
4;怎么借1,其实就可以相当于加法一样,只是这里换成了减;
wsc = (a[i]-'0')-(b[j]-'0')-jws;
怎么表示借1后的情况呢;
if(wsc < 0){
jws = 1;
wsc = 10+wsc;}
else{
jws = 0;}
是不是很相同,这里可以比较一下大数相加和大数相减的不同;
大数相加;wsh =(a[i]-'0')+(b[j]-'0')+jzs;
if(wsh > 9){
jzs = 1;wsh = wsh%10;}
else jzs = 0;
大数相减;wsc =(a[i]-'0')-(b[j]-'0')-jws;
if(wsc < 0){
jws = 1;wsc = 10+wsc;}
else{jws = 0;}
还有就是相减要考虑负号的情况;
可以摆代码了,
//输入两个正的大数,输出前一个减后一个的结果;
#include<stdio.h>
#include<string.h>
int main()
{
int n, i, j, lena, lenb, m, jws, wsc,sz[1000],l, flag;
char a[1000], b[1000], t[1000];
scanf("%d",&n);
while(n--){
flag = 0;
scanf("%s",a);
scanf("%s",b);
lena = strlen(a);
lenb = strlen(b);
if(lena < lenb){//换边。将长的放在前面;
flag = 1;
printf("-");
strcpy(t, b);
strcpy(b, a);
strcpy(a, t);
m = lenb;
lenb = lena;
lena = m;
}
jws = 0;
l = 0;
for(i = lena-1, j = lenb-1; j != -1; i--, j--){//计算公共部分。也就是数组短的那部分
wsc = (a[i]-'0')-(b[j]-'0')-jws;
// printf("%d\n",wsc);
if(wsc < 0){
jws = 1;
wsc = 10+wsc;
}
else{
jws = 0;
}
sz[l] = wsc;
l++;
}
for( ; i != -1; i--){//数组长的剩余的部分
wsc = (a[i]-'0'-jws);
if(wsc < 0){
jws = 1;
wsc = 10+wsc;
}
else{
jws = 0;
}
sz[l] = wsc;
l++;
}
if(jws == 1){//判断负号的输出;
if(flag == 0)
printf("-");
// wsc = 10+wsc;
// sz[l] = wsc;
// printf("%d\n",wsc);
// l++;
}
for(l--; l != -1; l--){
printf("%d",sz[l]);
}
printf("\n");
}
return 0 ;
}
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 大数减法
- 数据结构 线性表中删除某一元素的程序
- jmeter解析json
- RecycleView 与 Listview 的差别
- HDU 1878 欧拉回路 【基础并查集】
- TortoiseSVN回滚到历史版本并用Jenkins部署
- 大数减法
- 微信移动客户端内部浏览器分享到朋友圈,QQ空间代码
- hdu 5538 House Building(长春现场赛——水题)
- iOS小技巧 - xcode6引入pch文件
- UI控件--RecyclerView(1)
- 算法与数据机构学习_第一章.栈和队列_1.设计一个有返回栈中最小元素功能的栈
- python资料全集
- 反射四步走
- JAVA 反射总结