【算法分析】

类似加法,可以用竖式求减法。在做减法运算时,需要注意的是:被减数必须比减数大,同时需要处理错位以及前导0。

【模版】

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{char str1[256],str2[256],temp[256];int a[256],b[256],c[256];int lena,lenb,lenc;int i;memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));cin>>str1;//输入被减数cin>>str2;//输入减数lena=strlen(str1);lenb=strlen(str2);if( (lena<lenb) || (lena==lenb&&strcmp(str1,str2)) )//如果被减数小于减数,值为负,两者交换{strcpy(temp,str1);strcpy(str1,str2);strcpy(str2,temp);cout<<"-";//输出-}lena=strlen(str1);lenb=strlen(str2);for(i=0;i<=lena-1;i++)//被减数str1存入数组aa[lena-i]=str1[i]-'0';for(i=0;i<=lenb-1;i++)//减数str2存入数组bb[lenb-i]=str2[i]-'0';i=1;while(i<=lena||i<=lenb){if(a[i]<b[i]){a[i]+=10;//借位a[i+1]--;//上一位减1}c[i]=a[i]-b[i];//对应位相减i++;}lenc=i;while((c[lenc]==0)&&(lenc>1))//删除前导0lenc--;for(i=lenc;i>=1;i--)//倒序输出cout<<c[i];cout<<endl;return 0;
}

基础算法 —— 高精度计算 —— 高精度减法相关推荐

  1. 基础算法 —— 高精度计算 —— 高精度除法

    [高精除以低精] 1.算法分析 做除法时,每一次的商的值都在0~9,每次求得的余数连接以后的若干位得到新的被除数,继续做除法.因此在做高精度除法时,要涉及到乘法运算和减法运算以及移位处理. 为程序简洁 ...

  2. 基础算法 —— 高精度计算 —— 高精度加法

    [算法分析] 输入两个数到两个变量中,然后用赋值语句求他们的和,输出. 但是,我们知道,在C++中任何数据类型都有一定表示范围.当两个被加数很大时,上述算法显然不能求出精确解,因此寻求另外一种方法. ...

  3. 基础算法 —— 高精度计算 —— 高精度乘法

    [算法分析] 类似加法,用竖式求乘法.在做乘法运算时,同样有进位,同时对每一位进行乘法运算时,必须进行错位相加. 分析c数组下标变化规律,可以写出如下关系式:Ci=C'i+C''i+... 由此可见, ...

  4. 基础算法模板——高精度运算

    基础算法模板--高精度运算 1. 高精度加法 vector<int> add(vector<int> &A, vector<int> &B) {if ...

  5. Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)

    试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...

  6. 基础算法 —— 高精度计算

    [概述] 利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的尾数可达到几十甚至几百位,虽然计算机本身精度足够高,但受硬件限制,往往达不到实际问题所要求的精度,因此我们用程序设 ...

  7. 基础算法 —— 高精度计算 —— Java 大数类

    [概述] 在 C++ 中数据类型的长度最多能到 64 位,一旦超出这个位数,就要用数组进行模拟计算,即高精度算法 而在 Java 中有两个类:BigInteger.BigDecimal 分别表示大整数 ...

  8. 高精度算法——高精度减法

    介绍: 高精度减法也同加法一样,也是用于位数太大的运算,给你一个十几位的数你可能会做直接开个long long 的数据类型就解决了,但是给你一个100位的呢,1000位的呢,开long long 也不 ...

  9. C++ 算法基础课 01 —— 基础算法_快速排序/归并排序/二分查找/高精度

    文章目录 1 排序 1.1 快速排序(难在划分) 1.1.1 模板 1.1.2 习题1 -- 785.快速排序 1.1.3 习题2 -- 786.第k个数(快速选择算法) 1.2 归并排序(难在合并) ...

最新文章

  1. python去哪里学-学Python从哪里开始?
  2. B站一季度营收超预期,月活跃用户达1.72亿
  3. Python爬虫入门(5):URLError异常处理
  4. 41. 包含min函数的栈【单调栈】
  5. java增删改查_Java程序员你真的甘心只做增删改查吗
  6. matlab 传感器的迟滞,MATLAB PI迟滞模型问题
  7. Linux-ubuntu学习(第一天)
  8. 1644 免费馅饼 题解(c++)(S.B.S.)
  9. atomic_fetch_add
  10. Beego 框架学习(一)
  11. 单片微型计算机原理及应用第三版课后答案,单片微型计算机原理及应用 - 课后习题答案 - 山东理工...
  12. excel制作(1)多记录跟进表格
  13. 3DMAX、MAYA、C4D区别
  14. 百度飞桨—— 车牌识别学习与修改
  15. Latex排版论文——傻瓜式操作一晚排出毕业论文
  16. 摄影知识——光圈和快门的组合
  17. python中bytearray函数_Python bytearray() 函数
  18. python识别中文验证码_Python实现验证码识别
  19. Windows Kits(Windows 工具包)
  20. STM32与RC522简单公交卡系统的设计

热门文章

  1. 普通码农和技术大牛之间,只差这10本书(1024高能福利)
  2. el-table 行背景颜色_使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作
  3. 【面试题】一文讲清,为啥redis单线程还有很高的性能?
  4. 你H第一次做的视频,在B站播放量过万了~
  5. 2019 秋招提前批蘑菇街一面面经(带答案)
  6. 原创 | 万万没想到,JVM内存结构的面试题可以问的这么难?
  7. Linux 内核维护缺后浪,前浪Linus缺点Fun
  8. JimuReport 1.3.7 首个正式版本发布,免费的可视化拖拽报表
  9. 微信开源项目讲解使用公开课
  10. 教你如何获取索爱X10 Android2.1 Root权限