1169:大整数减法

简介: 1169:大整数减法

1169:大整数减法

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

求两个大的正整数相减的差。

【输入】

共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。

【输出】

一行,即所求的差。

【输入样例】

9999999999999999999999999999999999999

9999999999999

【输出样例】

9999999999999999999999990000000000000

【来源】

NO

1. #include <cstdio>
2. #include <cstring>
3. #include <iostream>
4. using namespace std;
5. int main()
6. {
7.  char ach[201],bch[201];
8.  int a[201],b[201],c[205],lena,lenb,lenc,i,j,jw;
9.  memset(a,0,sizeof(a));
10.   memset(b,0,sizeof(b));
11.   memset(c,0,sizeof(c));
12.   //以字符串型读入数据 
13.   scanf("%s",ach);
14.   scanf("%s",bch);
15.   //获取字符串长度 
16.   lena=strlen(ach),lenb=strlen(bch);
17.   //反转字符串取得整型数组
18.   for(i=lena-1,j=1;i>=0;i--,j++) a[j]=ach[i]-'0';
19.   for(i=lenb-1,j=1;i>=0;i--,j++) b[j]=bch[i]-'0';
20.   //对位相减 注意借位 
21.   jw=0;
22.   lenc=1;
23.   while(lenc<=lena||lenc<=lenb){
24.     if(a[lenc]>=(b[lenc]+jw)){
25.       c[lenc]=a[lenc]-b[lenc]-jw;
26.       jw=0;
27.     } 
28.     else{
29.       c[lenc]=a[lenc]+10-b[lenc]-jw;
30.       jw=1;
31.     }
32.     lenc++;
33.   } 
34.   while(c[lenc]==0) lenc--;//获取数组长度 
35.   for(i=lenc;i>0;i--) printf("%d",c[i]);//逆序输出 
36.   return 0;
37.  }

 

相关文章
|
4月前
|
Python
首先,我们可以从基本的数学运算开始,比如加法、减法、乘法、除法等。
首先,我们可以从基本的数学运算开始,比如加法、减法、乘法、除法等。
|
6月前
大整数加法_大整数减法
大整数加法_大整数减法
|
机器学习/深度学习
什么是浮点数加减运算里的对阶,阶码和尾数
什么是浮点数加减运算里的对阶,阶码和尾数
|
存储 C++
大整数运算(高精度运算)C/C++
大整数运算(高精度运算)C/C++
251 0
大数运算!(2)减法
大数运算!(2)减法
取余运算的使用
取余运算的使用
216 0
|
测试技术 C语言 Python
【C除法和取余】除法和负数取余你真的会了吗?
【C除法和取余】除法和负数取余你真的会了吗?
136 0
【C除法和取余】除法和负数取余你真的会了吗?
11:计算浮点数相除的余数
11:计算浮点数相除的余数
286 0
04:带余除法
04:带余除法
208 0