当前位置: 首页 > news >正文

题海拾贝:【高精度】减法

         Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!

我的博客:<但凡.

我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》

欢迎点赞,关注!

1、题目

 

2、题解

 

#include<iostream>
#include<string>
using namespace std;
const int N = 1e6 + 10;
int a[N], b[N], c[N];
int la, lb, lc;
string s1, s2;
bool FindMax(string s1, string s2)
{if (s1.size() != s2.size()){return s1.size() < s2.size();}return s1 < s2;
}
void sub(int c[],int a[],int b[])
{//模拟手算减法for (int i = 0;i < lc;i++){c[i] += a[i] - b[i];if (c[i] < 0)//借位{c[i + 1] -= 1;c[i] += 10;}}while (c[lc] == 0 && lc > 0) lc--;
}
int main()
{//高精度减法cin >> s1 >> s2;//判断让较大的数作被减数if (FindMax(s1, s2)){swap(s1,s2);cout << '-';}la = s1.size();lb = s2.size();lc = max(la, lb);//逆序存入数组for (int i = 0;i < la;i++) a[la - i - 1] = s1[i] - '0';for (int i = 0;i < lb;i++) b[lb - i - 1] = s2[i] - '0';sub(c, a, b);//打印for (int i = lc;i>=0;i--){cout << c[i];}return 0;
}

        好了,今天的内容就分享到这,我们下期再见! 

 


http://www.mrgr.cn/news/89924.html

相关文章:

  • 人工智能-A* 算法与机器学习算法结合
  • 鸿蒙UI(ArkUI-方舟UI框架)- 使用文本
  • 探讨如何在AS上构建webrtc(2)从sdk/android/Build.gn开始
  • 计算机的错误计算(二百二十二)
  • Linux 小火车
  • 如何用vscode断点调试Vue.js的项目
  • 驱动开发系列34 - Linux Graphics Intel 动态显存技术的实现
  • 数据结构:算法复杂度
  • DeepSeek-R1论文细节时间线梳理
  • 0002-课前准备和课程基础
  • 开源项目介绍-词云生成
  • 源路由 | 源路由网桥 / 生成树网桥
  • 【GoLang】切片的面试知识点
  • jakarta EE学习笔记-个人笔记
  • python:如何播放 .spx 声音文件
  • Unity扩展编辑器使用整理(一)
  • python 语音识别方案对比
  • AI大模型零基础学习(1):大模型使用篇
  • JavaScript 复习
  • Linux ftrace 内核跟踪入门
  • 【算法】动态规划专题⑦ —— 多重背包问题 + 二进制分解优化 python
  • #渗透测试#批量漏洞挖掘#微商城系统 goods SQL注入漏洞
  • C++ Primer 成员访问运算符
  • 快速在wsl上部署学习使用c++轻量化服务器-学习笔记
  • 【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具演示04
  • 私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)