博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AcWing - 高精度减法(大数减法)
阅读量:2001 次
发布时间:2019-04-28

本文共 1371 字,大约阅读时间需要 4 分钟。

题目链接:

时/空限制:1s / 64MB

题目描述

给定两个正整数,计算它们的差,计算结果可能为负数。

输入格式

共两行,每行包含一个整数。

输出格式

共一行,包含所求的差。

数据范围

1≤整数长度≤10^5

输入样例

32

11

输出样例

21

解题思路

题意:求两个大数的差。

思路:上大数减法模板,注意负数的情况。

Accepted Code:

/*  * @Author: lzyws739307453  * @Language: C++  */#include 
using namespace std;const int MAXN = 100005;char sa[MAXN], sb[MAXN];int vectcmp(vector
A, vector
B) { if (A.size() != B.size()) { if (A.size() > B.size()) return 1; return -1; } for (int i = A.size() - 1; ~i; i--) { if (A[i] != B[i]) { if (A[i] > B[i]) return 1; return -1; } } return 0;}// C = A - B, 满足A >= B, A >= 0, B >= 0vector
Sub(vector
A, vector
B) { vector
C; int t = 0; for (int i = 0; i < A.size(); i++) { t = A[i] - t; if (i < B.size()) t -= B[i]; C.push_back((t + 10) % 10); t = t < 0; } while (C.size() > 1 && !C.back()) C.pop_back(); return C;}int main() { vector
spa, spb, spc; scanf("%s%s", sa, sb); for (int i = strlen(sa) - 1; ~i; i--) spa.push_back(sa[i] - '0'); for (int i = strlen(sb) - 1; ~i; i--) spb.push_back(sb[i] - '0'); if (vectcmp(spa, spb) < 0) { spc = Sub(spb, spa); printf("-"); } else spc = Sub(spa, spb); for (int i = spc.size() - 1; ~i; i--) printf("%d", spc[i]); printf("\n"); return 0;}

转载地址:http://bybtf.baihongyu.com/

你可能感兴趣的文章
webrtc开发中,音频实时对讲采集的问题(ios mic mute)【转】
查看>>
android hal学习——编写hal代码【转】
查看>>
android hal学习——aidl,java service,jni编写【转】
查看>>
android hal学习——测试整个流程【转】
查看>>
Caffe使用教程【转】
查看>>
Caffe 安装错误记录及解决办法【转】
查看>>
android下TTS的传感器切换听筒和扬声器测试
查看>>
android下tcp之client测试
查看>>
Android酷炫实用的开源框架(UI框架)【转】
查看>>
ORTC以及WebRTC的未来【转】
查看>>
Android应用是否可以只有一个Service或Broadcast Reciver,而没有Activity?【转】
查看>>
Android用类继承Application的全局变量使用注意
查看>>
TensorFlow 中文语音识别【转】
查看>>
qml之TextField使用笔记
查看>>
排序算法之冒泡排序
查看>>
排序算法之选择排序
查看>>
排序算法之希尔排序
查看>>
pyqt5之拖拽
查看>>
pyqt5之俄罗斯方块
查看>>
算法排序之归并排序
查看>>