2736 大整数减法
2017-05-20 23:03
232 查看
题目来源: http://bailian.openjudge.cn/practice/2736/ 描述
求两个大的正整数相减的差。
输入
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
输出
一行,即所求的差。
样例输入
9999999999999999999999999999999999999
9999999999999
样例输出
9999999999999999999999990000000000000
题意描述:
输入两行不超过200位的整数表示被减数a和减数b(a > b)
计算并输出两大整数的差
解题思路:
先把str1和str2逆置
再一一对应计算,需要借位,结果减一
最后去掉前导零输出即可
程序代码:
错误分析:
1、注意0 - 0的情况,判断是否为0时与字符‘0’比较
求两个大的正整数相减的差。
输入
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
输出
一行,即所求的差。
样例输入
9999999999999999999999999999999999999
9999999999999
样例输出
9999999999999999999999990000000000000
题意描述:
输入两行不超过200位的整数表示被减数a和减数b(a > b)
计算并输出两大整数的差
解题思路:
先把str1和str2逆置
再一一对应计算,需要借位,结果减一
最后去掉前导零输出即可
程序代码:
1 #include<stdio.h> 2 const int N=230; 3 #include<string.h> 4 void strr(char *str); 5 int main() 6 { 7 char str1 ,str2 ; 8 int result ,i,j,l1,l2,l; 9 while(scanf("%s%s",str1,str2) != EOF) 10 { 11 strr(str1); 12 strr(str2); 13 l1=strlen(str1); 14 l2=strlen(str2); 15 if(l1>=l2) 16 { 17 l=l1; 18 for(i=l2;i<l;i++) 19 str2[i]='0'; 20 } 21 if(l==1 && str1[0]=='0' && str2[0]=='0') 22 { 23 printf("0\n"); 24 continue; 25 } 26 27 memset(result,0,sizeof(result)); 28 for(i=0;i<l;i++) { 29 result[i] += (str1[i]-'0') - (str2[i]-'0'); 30 if(result[i] < 0) 31 { 32 result[i] += 10; 33 result[i+1]--; 34 } 35 } 36 37 for(i=l;i>=0;i--) { 38 if(result[i] > 0) 39 break; 40 } 41 for(j=i;j>=1;j--) 42 printf("%d",result[j]); 43 printf("%d\n",result[0]); 44 } 45 return 0; 46 } 47 void strr(char *str) 48 { 49 int i,l,t; 50 l=strlen(str); 51 for(i=0;i<l/2;i++) 52 { 53 t=str[i]; 54 str[i]=str[(l-1)-i]; 55 str[(l-1)-i]=t; 56 } 57 }
错误分析:
1、注意0 - 0的情况,判断是否为0时与字符‘0’比较
相关文章推荐
- 百练_2736大整数减法(大数相减)
- 百练2736 大整数减法
- 百练2736/noi 11:大整数减法
- Pku百练2736(大整数减法)
- OpenJudge 2736 大整数减法 C++
- 2749(附大正整数减法)
- 华为机试题——整数减法
- 实现整数的乘法,减法和除法运算。只允许使用加号
- 带符号的整数做减法
- 高精度(大整数减法)
- 长整数相加运算(内含减法)。。= =
- 大整数减法
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 大整数减法 (与后来做的高精度减法不同是用了容器)
- 9.7数学与概率(二)——实现整数的乘法、减法和除法运算,只允许使用加号
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 华为机试题——整数减法
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。