博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[小米OJ] 3. 大数相减
阅读量:4912 次
发布时间:2019-06-11

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

思路:

利用两个string保存相减的数,其他模拟即可。

参考了别人的一个处理减的步骤,很简洁好看。

 

string substract(string str1, string str2){    string str = "";    int len = str1.length();    int a = 0, b = 0, c = 0;    for (int i = len - 1; i >= 0; i--)    {        a = str1[i] - '0';        b = str2[i] - '0';        str += ((a - b - c + 10) % 10) + '0';        if (a - b - c >= 0)            c = 0;        else            c = 1;    }    reverse(str.begin(), str.end());    return str;}

完整代码:

#include 
using namespace std;void init1(string input, string &str1, string &str2){ int index = input.find('-'); for (int i = 0; i < input.length(); i++) { if (i < index) str1 += input[i]; else if (i > index) str2 += input[i]; }}void init2(string str1, string &str2){ while (str2.length() < str1.length()) { str2 = '0' + str2; }}string substract(string str1, string str2){ string str = ""; int len = str1.length(); int a = 0, b = 0, c = 0; for (int i = len - 1; i >= 0; i--) { a = str1[i] - '0'; b = str2[i] - '0'; str += ((a - b - c + 10) % 10) + '0'; if (a - b - c >= 0) c = 0; else c = 1; } reverse(str.begin(), str.end()); return str;}void print(string str){ while (str[0] == '0') { str.erase(str.begin()); } if (str.length() == 0) str = "0"; cout << str << endl;}int main(){ string input, str, str1, str2; while (cin >> input) { init1(input, str1, str2); init2(str1, str2); str = substract(str1, str2); print(str); } return 0;}

 

转载于:https://www.cnblogs.com/ruoh3kou/p/10279892.html

你可能感兴趣的文章
Android 知识总汇
查看>>
字符转换
查看>>
codeforces水题100道 第十五题 Codeforces Round #262 (Div. 2) A. Vasya and Socks (brute force)
查看>>
PHP学习笔记 - 进阶篇(10)
查看>>
Firefox浏览器【书签工具栏】里的网址链接无法删除的解决办法
查看>>
SQL语句将DateTime 转成自定义格式
查看>>
Docker概念、安装
查看>>
Sphinx中文入门指南——新手可先看此文
查看>>
The STM32 SPI and FPGA communication
查看>>
C++11常用特性的使用经验总结(转载)
查看>>
已知(x,y,z,yaw,pitch,roll)如何得到4*4的转换矩阵?
查看>>
2016-06-17
查看>>
Emscripten实现把C/C++文件转成wasm,wast(wasm的可读形式),llvm字节码(bc格式),ll格式(llvm字节码的可读形式)并执行wasm...
查看>>
解决IE9下JQuery的ajax失效的问题
查看>>
Oracle session inactive状态临时表数据未清空问题
查看>>
物联网(1)----手机NFC识别方案平台
查看>>
UIView中UIButton设置监听
查看>>
java jsp自定义标签
查看>>
BZOJ 2200: [Usaco2011 Jan]道路和航线
查看>>
关于sencha touch中给文本添加焦点无效的解决方案
查看>>