另类四则运算之大整数加减法:

十进制的数值运算在计算机里都将转换成二进制的数值运算,而二进制的运算就是cpu中最根本的逻辑运算,最后再转化成十进制输出。这次介绍的方法是保留十进制的运算方式(小学生的列竖式计算),仅仅将每位数字转换成二进制。这种算法既在速度上有所提升,又能克服单个数据存储大小的限制。因此可以用来进行大整数的加减法(大整数通常指16位或32位以上整型数)。至于竖式计算的原理就不说了哦,不然有损大家的智商!

核心:模拟竖式计算,将大整数的每一位分开来存储与计算。

C语言完整程序:

//大整数加法:

#include

#include

char a[100],b[100];

int c[100],d[100];

int main()

{

int m,n,i,j;

scanf("%s %s",a,b);

m=strlen(a);

n=strlen(b);

for(i=0;i<=m-1;i++)

c[i]=a[m-1-i]-'0';

for(i=0;i<=n-1;i++)

d[i]=b[n-1-i]-'0';

for(i=0;i<=99;i++)

{

c[i]+=d[i];

if(c[i]>=10)

{

c[i]-=10;

c[i+1]+=1;

}

}

for(i=99;i>=0;i--)

{

if(c[i]!=0)

{j=i;break;}

}

for(i=j;i>=0;i--)

printf("%d",c[i]);

}

//大整数减法:

#include

#include

char a[100],b[100];

int c[100],d[100];

int main()

{

int m,n,i,j;

scanf("%s %s",a,b);

m=strlen(a);

n=strlen(b);

for(i=0;i<=m-1;i++)

c[i]=a[m-1-i]-'0';

for(i=0;i<=n-1;i++)

d[i]=b[n-1-i]-'0';

for(i=0;i<=99;i++)

{

c[i]-=d[i];

if(c[i]<0)

{

c[i]+=10;

c[i+1]-=1;

}

}

for(i=99;i>=0;i--)

{

if(c[i]!=0)

{j=i;break;}

}

for(i=j;i>=0;i--)

printf("%d",c[i]);

}

算法之【仿竖式算法】相关推荐

  1. python除法运算定律_除法竖式算法的原理是什么?

    我们知道,一个数恰好整除另一个数是比较难得的,更多的是出现余数不为 的情况.于是就有了所谓的带余除法.用 去除 ,商数是 ,余数是 : 举个具体的例子更好看.33÷7,商为4,余数为5: . 这个带余 ...

  2. c语言横纵坐标乘法,C语言 · 猜算式 · 乘法竖式

    题目:猜算式 你一定还记得小学学习过的乘法计算过程,比如: 273 x   15 ------ 1365 273 ------ 4095 请你观察如下的乘法算式 *** x   *** ------- ...

  3. 【算法学习笔记】35.高精度 竖式乘法 SJTU OJ 1274

    Description 输入a,b 输出a*b的竖式乘法,格式见样例. Sample Input1 11 9 Sample Output1 119 -- 99 Sample Input2 10 10 ...

  4. 数学速算法_适合小学三、四年级的心算法,再“笨”的学生,也不用列竖式

    更多心算速算法,在我的公众号,小学数学心算速算,可以看到哦! 不少家长在后台咨询,有没有适合小学三.四年级的心算法? 今天,就分享一种适合三.四年级学生的心算法.这种心算法,适合计算加减法时用,而且, ...

  5. 【算法设计zxd】第3章 迭代法 杨辉三角,穿越沙漠,内存移动,竖式相乘(阶乘)

    目录 迭代:(辗转法)        一种 不断用变量的旧值递推新值的过程 [例3-1] 输出如图的杨辉三角形. [例3-2]穿越沙漠问题 [例3-2]内存移动问题 [例3-4]编程求当n<=1 ...

  6. 一文清晰讲解机器学习中梯度下降算法(包括其变式算法)

    本篇文章向大家介绍梯度下降(Gradient Descent)这一特殊的优化技术,我们在机器学习中会频繁用到. 前言 无论是要解决现实生活中的难题,还是要创建一款新的软件产品,我们最终的目标都是使其达 ...

  7. 利用进化算法进行仿k-means聚类(可称之为EA-KMeans算法)

    该案例展示了如何利用进化算法进行仿k-means聚类(可称之为EA-KMeans算法). 本案例采用与k-means类似的聚类方法,采用展开的聚类中心点坐标作为染色体的编码,基本流程大致如下: 1) ...

  8. C++实现chaining链式算法(附完整源码)

    C++实现chaining链式算法 C++实现chaining链式算法完整源码(定义,实现,main函数测试) C++实现chaining链式算法完整源码(定义,实现,main函数测试) #inclu ...

  9. 一、操作系统——处理机(作业)调度算法:先来先服务算法FCFS、最短作业优先算法SJF(非抢占式)、 最短剩余时间优先算法SRTN(抢占式)、最高响应比优先算法HRRN

    各种调度算法的学习思路: 调度算法的评价指标: 一.先来先服务算法(FCFS):First Come First Serve 二.最短作业优先算法(SJF非抢占式):Shortest Job Firs ...

最新文章

  1. PHP 5.3 中不建议使用的(部分)函数列表
  2. 100多个Android Demo的整合
  3. 第二十一课:材料磁性
  4. spark python3.6_在mac上搭建spark+ipython环境
  5. Centos7 ping不了百度
  6. 笔试编程常用函数(Java)
  7. 破解YouTube、Facebook推荐系统背后的那些算法
  8. win10搭建hadoop环境
  9. 微软为何能一直向安卓厂商收费?
  10. mpvue学习笔记-之微信数据请求封装
  11. LDR6028充电OTG直播线直播声卡音频转接器最具性价比方案
  12. Operation not allowed
  13. 【第04题】给定 a 和 b,问 a 能否被 b 整除 | if 语句 和 条件运算符的应用
  14. win7如何修改html图标,Win7如何修改桌面图标
  15. 企查猫app数据解密
  16. 关于阅读论文的一些感想
  17. Unity3dAndroid Studio实现开机自启App以及激活其他App
  18. 《REWORK》启示录一夜成名只是传说——创业一步步来
  19. IE 零日漏洞风险评估
  20. 打开微信时站着的小人是谁?

热门文章

  1. python时钟程序的设计总结_Python实现时钟显示效果思路详解
  2. wsl 安装linux 子系统
  3. java filter 返回错误消息_java filter 导致错误310
  4. mysql 缓存怎么设置_mysql中缓存如何设置
  5. WCF 第四章 绑定 msmqIntegrationBinding
  6. Amazon Corretto技术细节探秘
  7. EOJ Monthly 2018.11 D. 猜价格
  8. 基于php双引号中访问数组元素
  9. 【工具方法util】JAVA中将一个List等分成n个list的
  10. [Windows编程] C++中 bool,BOOL ,VARIANT_BOOL 的区别