高精度加减乘法小程序
复习高精度玩,写了个非常直观的加减乘程序.
1 Uses Math; 2 Var 3 a,b:AnsiSTring; 4 DC,la,lb:longint; 5 c:Array[-2555555..2555555] of longint; 6 Procedure Plus(a,b:AnsiSTring); 7 Var 8 Tt,i:longint; 9 Begin 10 if la>lb Then 11 Begin 12 For i:=1 to la-lb do 13 b:='0'+b; 14 lb:=la; 15 End 16 Else 17 Begin 18 For i:=1 to lb-la do 19 a:='0'+a; 20 la:=lb; 21 End; 22 For i:=1 to la do 23 c[i]:=Ord(a[i])+Ord(b[i])-96; 24 For i:=la Downto 1 do 25 if (c[i]+DC)>=10 Then 26 Begin 27 Tt:=(c[i]+DC) Mod 10; 28 DC:=(c[i]+DC) Div 10; 29 c[i]:=Tt; 30 End 31 Else 32 Begin 33 c[i]:=c[i]+DC; 34 DC:=0; 35 End; 36 c[0]:=-1; 37 if DC>0 Then c[0]:=DC; 38 For i:=0 to la do 39 if c[i]<>-1 Then Write(c[i]); 40 Writeln; 41 End; 42 Procedure Minus(A,b:AnsiSTring); 43 Var 44 t:AnsiSTring; 45 Tt,i:longint; 46 Begin 47 if la>=lb Then 48 Begin 49 For i:=1 to la-lb do 50 b:='0'+b; 51 lb:=la; 52 End 53 Else 54 Begin 55 For i:=1 to lb-la do 56 a:='0'+a; 57 la:=lb; 58 Write('-'); 59 t:=a; 60 a:=b; 61 b:=t; 62 End; 63 For i:=1 to la do 64 c[i]:=Ord(a[i])-Ord(b[i]); 65 For i:=la Downto 1 do 66 if (c[i])<0 Then 67 Begin 68 c[i]:=c[i]+10; 69 c[i-1]:=c[i-1]-1; 70 End; 71 lb:=1; 72 While (c[lb]=0) And (lb<la) do Inc(lb); 73 For i:=lb to la do 74 if c[i]<>-1 Then Write(c[i]); 75 Writeln; 76 End; 77 Procedure Multiply(a,b:AnsiString); 78 Var 79 Tt,xx,i,j:longint; 80 Begin 81 xx:=0; Tt:=Maxlongint; 82 For i:=La Downto 1 do 83 For j:=lb Downto 1 do 84 Begin 85 c[i+j-1]:=((Ord(a[i])-48)*(Ord(b[j])-48)+c[i+j-1]); 86 Tt:=Min(Tt,i+j-1); 87 xx:=Max(xx,i+j-1); 88 End; 89 While c[tt]=0 Do Inc(tt); 90 DC:=0; 91 For i:=xx Downto Tt Do 92 Begin 93 if c[i]+DC>=10 Then 94 Begin 95 lb:=c[i]; 96 c[i]:=(c[i]+DC) Mod 10; 97 DC:=(lb+DC) Div 10; 98 End 99 Else //17956 100 Begin 101 c[i]:=c[i]+Dc; 102 DC:=0; 103 End; 104 End; 105 if DC>0 Then Write(DC); 106 For i:=Tt To xx do Write(c[i]); Writeln; 107 End; 108 Begin 109 While True Do 110 Begin 111 Writeln('高精度数字计算器 Ver 0.9 Done By Catch-22.S.In'); 112 Writeln('本计算器暂时只支持加减乘三则运算,其他运算更新中...'); 113 Writeln('请不要拿无聊的超多位数来BS本程序,谢谢合作.'); 114 Writeln('请输入要计算的两个高精度数字:'); 115 Write('请输入第一个数字,并换行:'); 116 Readln(a); 117 Write('请输入第二个数字,并换行:'); 118 Readln(b); 119 la:=length(a); 120 lb:=Length(b); 121 Writeln('计算中..'); 122 FillChar(c,Sizeof(c),0); DC:=0; 123 Write(a,'+',b,'='); 124 Plus(a,b); 125 FillChar(c,Sizeof(c),0); DC:=0; 126 Write(a,'-',b,'='); 127 Minus(a,b); 128 FillChar(c,Sizeof(c),0); DC:=0; 129 Write(a,'*',b,'='); 130 Multiply(a,b); 131 Writeln('谢谢使用,如需继续计算请输入11,如不需要请输入任意字符'); 132 Readln(a); 133 if a<>'11' Then 134 Begin 135 Writeln('Thank You.'); 136 For la:=1 to Maxlongint Shr 4 do lb:=1; 137 Exit; 138 End; 139 End; 140 End.
EXE:http://yunpan.cn/lk/sVMDU5H9aYjgJ ,欢迎使用.
转载于:https://www.cnblogs.com/Catch-22/archive/2012/11/05/2756004.html
高精度加减乘法小程序相关推荐
- android商品数量加减,微信小程序实现一个简单的商品数量加减案例
简介 这是一个用微信小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用,很简单哦~~~. 核心js方法说明addCount(增加数量) delCount (减少数量) ...
- 矩阵的加减乘c语言程序,C语言实现的矩阵加减乘法运算系统
C语言实现的矩阵加减乘法运算系统 /*本矩阵运算系统可以完成矩阵的加.减.乘法,但是只限于方阵*/ #include<stdio.h> #include<math.h> /*- ...
- 大数高精度加减、乘除、开根(C++版全套最详细、最易懂)
大数高精度加减.乘除.开根 一.前面铺垫 二.加法 三.减法 四.乘法 五.除法 六.开根(待完善) 大数高精度加减乘除主要用在超过long型的数字计算(比如1000位数), 最基本的思路就是换成 ...
- poj2756(高精度加减)
是不是我没有理解这个题目,就是A+B高精度加减,为什么我的代码有问题呢?下面是自己写的代码,还是存在问题! #include<iostream> #include<algorithm ...
- bigdecimal保留4位小数_四年级数学小数的加减乘法知识点汇总,带练习!
张老师 - 4年级(多品小学教育) 顺城中心小学郭老师和环县虎洞中心小学谭老师需要的这份学习资料现在分享. 本资料已制作电子版 下载码是:76qa32vd <小数的加减乘法>知识点 一.小 ...
- Python 打造微信小程序-加减大师辅助程序
写在前面: 主要运用python进行简单的图像处理,不得不说python用起来是真的爽,各种库的学习使得开发变得越来越简单... 其实玩过这个小程序的应该知道实现起来也不是很难,很适合新手练手.第一次 ...
- 学法减分小程序可用可运营源码附带安装教程
介绍: 淘宝1000买的学法可用可搭建 学法减分助手小程序前端源码+后端教程 网盘下载地址: http://kekewl.org/gOnDqsdx9iy0 图片:
- 亲测-独立后台版本+学法减分小程序2022最新可用可运营源码+附带详细安装教程
简介:朋友淘宝1000买的,有需要的自行下载 含义:""学法减分"是针对持有驾驶证的驾驶人,因交通违法行为被记分,参加网上交通安全学习并考试合格后,予以减免记分的措施.& ...
- 今日头条点击链接跳转微信公众号、加好友、小程序的方法(今日头条引流到微信公众号)
有时候我们可以在今日头条发布文章或评论时可以留下链接,当用户点击链接后跳转公众号.加好友界面:我们可以使用如下方法 一.使用工具 大家可以使用如下工具创建链接. 1.天天外链官网 二.可以生成链接的页 ...
最新文章
- [python,2018-06-29] 37%法则及其拓展解决恋爱问题
- java.lang.IllegalAccessError: org.apache.commons.dbcp.DelegatingPreparedStatement.isClosed()Z
- 用栈实现队列和用队列实现栈
- php图片等比例压缩,php实现图片上传并等比例压缩
- weblogic常见漏洞
- 装饰者模式源码解析(spring-session mybatis jdk servlet)
- 《BI那点儿事》数据流转换——派生列
- shell脚本样本_Shell脚本
- mysql索引背后的数据结构_MySQL索引背后的数据结构及算法原理
- android java 静态库_android的android.mk,和application.mk文件编写
- vscode php插件_「PHP从入门到颈椎病康复」基础篇——HelloWorld
- spring源码下载以及gradle的详细使用教程
- 常见概率抽样方法及其适用场景总结
- 广义相对论 的 一个问题
- 2022年中国云市场份额:阿里云腾讯云下降
- Verilog 序列信号发生器的三种设计思路
- 逆向笔记 | 破解极域学生端密码并实现窗口化屏幕广播
- 无人机无线Mesh自组网,CV5200远距离WiFi模组,实时通信传输技术
- Unity实现众多平台一键社会化分享(ShareSDK)
- Oracle项目管理系统之计划编制及进度计算
热门文章
- Qt文档阅读笔记-重现GUI事件进行单元测试
- Linux学习笔记-子目录的支持
- Qt中echo服务器的简单编写
- Qt工作笔记-使用QCustomplot实现鼠标拖动数据点画曲线
- C/C++ OpenCV图像的线性混合
- php符号 set,PHP 符号大全
- ipad怎么连接电脑_苹果连接电脑没反应怎么办
- 5.1.2全景声音箱摆位_全景声音响系统音箱应该如何摆位(5.1.2、5.1.4篇)
- python numpy array中维度的区别 array.shape
- 数据结构之二叉树的物理结构(存储结构)