华为机试题—大数相减-c++
来源:互联网 发布:许朝军 知乎 编辑:程序博客网 时间:2024/05/22 00:09
/*题目:输入两行字符串正整数,第一行是被减数,第二行是减数,输出第一行减去第二行的结
/果。
/大数一般会超出长整型的范围,所以用字符串存储数据然后按照减法运算法则实现就成了。
/string类成员函数功能强大!
*/
#include <iostream>#include<string>using namespace std;int compare(string &num1,string &num2){ int l1 = num1.size(); int l2 = num2.size(); if(l1>l2) return 1; else if(l1<l2) return 2; else for(int i=0;i<l1;i++) { if(num1[i]>num2[i]) return 1; else if(num1[i]<num2[i]) return 2; } return 0;}string minus(string &num1,string &num2){ //num1>nun2 int len1= num1.size(); int len2= num2.size(); int flag = 0; int temp=0; string result; for(int i=0;i<len2;i++) { temp=num1[len1-1-i]-num2[len2-1-i]-flag; if(temp<0){ flag=1; temp = temp+10; result.push_back(temp+'0'); } else { flag=0; result.push_back(temp+'0'); } } for(int i=len1-len2-1;i>=0;i--) { temp = num1[i]-'0'-flag; if(temp<0) { flag =1; result.push_back(temp+10+'0'); } else { flag=0; result.push_back(temp+'0'); } } int len3 = result.size(); int num=0; for(int i=0;i<len3;i++) if(result[i]==0) num++; else break; if(num>0) result.erase(len3-num); num = result.size(); char c; for(int i=0;i<num/2;i++) { c = result[i]; result[i]=result[num-1-i]; result[num-1-i] = c; } return result;}void main(){ string num1,num2; cin>>num1>>num2; int flag=0; string result; flag = compare(num1,num2); if(flag==0) { result='0'; } if(flag==1) result = minus(num1,num2); if(flag==2){ result.push_back('-'); result.append(minus(num2,num1)); } cout<<result; return ;}
0 1
- 2016华为机试题:大数相减
- 华为机试题—大数相减-c++
- 华为2013机试题 大数相减JAVA实现
- C/C++语言最新华为机试题“大数相加算法”
- 华为机试题:大数求和
- 华为机试—大数相减
- 2016华为机试题(java版):两个大数相减的程序(运行成功)
- 华为机试题--- 大数相加 异常处理
- 2014华为机试题2:大数相加
- 华为机试:大数相减
- 华为机试-大数相减
- (java)华为机试题:大数求差
- 姓名的夫妻相(C)华为机试题
- 华为2014年机试题【100以内正整数的加、减运算】-【C语言/C++】
- 华为机试 - 大数之和
- 2012华为机试题目(C/C++)
- 华为2014年机试题【字符串过滤】-【C语言/C++】
- 华为2014年机试题【字符串压缩】-【C语言/C++】
- leetcode:Minimum Window Substring题解(Java)
- 选择排序与插入排序--java
- SQL2008R2 导出表 成dbf文件,网上很多文档,但是真正能执行生成dbf文件的不多,我整理了一下:
- 我作为大学生刚出校园实习的感受
- 生产者-消费者模型的Java实现
- 华为机试题—大数相减-c++
- Java 错误:找不到或无法加载主类
- Android简单的计时器实现
- MPLS-6 MPLS-VPN的配置
- "Anroid SQLite"数据库语句汇总
- 红黑树
- C# 缓存(Cache)
- Android四大组件介绍
- 纯JS回显form各种表单数据