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.  }

 

相关文章
|
5月前
|
Python
首先,我们可以从基本的数学运算开始,比如加法、减法、乘法、除法等。
首先,我们可以从基本的数学运算开始,比如加法、减法、乘法、除法等。
|
6月前
PAT乙级 1017大数除法
PAT乙级 1017大数除法
|
7月前
大整数加法_大整数减法
大整数加法_大整数减法
|
存储 C++
大整数运算(高精度运算)C/C++
大整数运算(高精度运算)C/C++
277 0
大数运算!(2)减法
大数运算!(2)减法
105 0
取余运算的使用
取余运算的使用
229 0
|
测试技术 C语言 Python
【C除法和取余】除法和负数取余你真的会了吗?
【C除法和取余】除法和负数取余你真的会了吗?
157 0
【C除法和取余】除法和负数取余你真的会了吗?
04:带余除法
04:带余除法
213 0
使用^、&(异或、并且)位运算 实现算数加法(+)
用位运算即是计算机的运算规则,而计算机只懂得二进制,所以位运算使用的进制是二进制。
171 0
使用^、&(异或、并且)位运算 实现算数加法(+)
F#大整数阶乘
在数学上,有时候需要计算阶乘,即n! = 1 * 2 * 3 * ... (n - 1) * n ,由于int类型的长度限制,当n比较大的时候,则n!可能就无法得出正确的计算结果。此时就需要用到大整数类型bigint。
769 0
F#大整数阶乘