开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2823|回复: 2
收起左侧

[易源码分享] 大数的加法与乘法

[复制链接]
结帖率:75% (3/4)
发表于 2015-5-22 09:47:52 | 显示全部楼层 |阅读模式   福建省福州市
分享源码
界面截图: -
是否带模块: 调用了模块
备注说明: -
本帖最后由 APPLEUFO 于 2015-5-22 09:57 编辑

用的是小学老师黑板上教的方法啦,看代码
两个简单的函数就可以实现相加,相乘
没用那个大数支持

捣鼓出了加法与乘法,理论上两亿个数字相加,相乘都是OK的,文本型没有溢出嘛ps:代码旧了 两个跳出循环 可以删除
  
调试输出 (四则运算_加法 (“123456789123456789123456789”, “987654321123456789”))
调试输出 (“xxxxxxxxxxxxxxxxxxxxx”)
调试输出 (四则运算_乘法 (“123456789987654321”, “159753456852”))


i支持库列表   支持库注释   
spec特殊功能支持库

* “123456790111111110246913578”
* “xxxxxxxxxxxxxxxxxxxxx”
* “19722648972379160182564857492”

  
子程序名返回值类型公开备 注
四则运算_加法文本型 注意:加数 与 被加数 都不能为 空文本!
参数名类 型参考可空数组备 注
参数_a文本型
参数_b文本型
变量名类 型静态数组备 注
局变_格式化a文本型 
局变_格式化b文本型 
局变_a整数型0
局变_b整数型0
局变_c整数型0结果
n1整数型 
ls整数型相加结果
局变_十位数整数型进一位,会加入每次相加的结果中去
局变_个位数整数型 
局变_合并数组文本文本型 
如果 (参数_a = “”)
局变_格式化a = “0”
局变_格式化a = 参数_a

如果 (参数_b = “”)
局变_格式化b = “0”
局变_格式化b = 参数_b

子程序_格式化一对文本长度 (局变_格式化a, 局变_格式化b)  ' 将两个数字格式化为一样长度的文本,缺的部分前面补0
子程序_文本转化为数组 (局变_格式化a, 局变_a)  ' 生成3个数组,c 为结果数组
子程序_文本转化为数组 (局变_格式化b, 局变_b)
重定义数组 (局变_c, 假, 取数组成员数 (局变_a))  ' 数组成员数,只要定义为a或B的个数即可,因为每次都是个位数相加
变量循环首 (取数组成员数 (局变_a), 1, -1, n1)  ' 将两个数组合并 !!!!!!!!为 局变_c
ls = 局变_a [n1] + 局变_b [n1] + 局变_十位数
如果 (n1 = 1)
局变_c [n1] = ls  ' 这是临界,等于第一个运算的时候,可以不用分解数字了
跳出循环 ()


子程序_分解数字 (ls, 局变_十位数, 局变_个位数)  ' 这是正常情况下
局变_c [n1] = 局变_个位数

变量循环尾 ()
局变_合并数组文本 = 子程序_数组转化为文本 (局变_c)
返回 (局变_合并数组文本)
子程序名返回值类型公开备 注
四则运算_乘法文本型 
参数名类 型参考可空数组备 注
参数_被乘数文本型
参数_乘数文本型
变量名类 型静态数组备 注
局变_a整数型0a
局变_b整数型0b
局变_c整数型0c= a*b
n1整数型 
m1整数型 
ls整数型9*9表里面的运算
局变_十位数整数型 
局变_个位数整数型 
局变_补零个数整数型在末尾补零
局变_数组合并后文本文本型 
t1整数型 
局变_不断相加的结果文本型最终结果
子程序_文本转化为数组 (参数_被乘数, 局变_a)
子程序_文本转化为数组 (参数_乘数, 局变_b)
' 调试输出 (局变_被乘数, 局变_乘数)
变量循环首 (取数组成员数 (局变_b), 1, -1, m1)
局变_十位数 = 0  ' 上一行被乘数为最前面一个数字时,就不要留进几位的小数字(局变_十位数)了
重定义数组 (局变_c, 假, 取数组成员数 (局变_a))  ' 最后还要咔嚓掉前面为0的数组
变量循环首 (取数组成员数 (局变_a), 1, -1, n1)
ls = 局变_a [n1] × 局变_b [m1] + 局变_十位数  ' 会是a =1 2 3 4  逐个乘以b =5 这样的节奏
如果 (n1 = 1)
局变_c [n1] = ls  ' 到最前面一个结果了
跳出循环 ()


子程序_分解数字 (ls, 局变_十位数, 局变_个位数)
局变_c [n1] = 局变_个位数  ' 正常

变量循环尾 ()
局变_数组合并后文本 = 子程序_数组转化为文本 (局变_c)
局变_数组合并后文本 = 局变_数组合并后文本 + 取重复文本 (局变_补零个数, “0”)
局变_补零个数 = 局变_补零个数 + 1  ' 个位数相乘不必补零(看前面已经加了0个零),十位数补1个,百位数补两个,以此类推……
局变_不断相加的结果 = 四则运算_加法 (局变_不断相加的结果, 局变_数组合并后文本)
变量循环尾 ()
返回 (局变_不断相加的结果)




四则运算 加减.zip

67.36 KB, 下载次数: 42, 下载积分: 精币 -2 枚

1196a4ec08fa513d1a4d3761396d55fbb3fbd947.jpg

评分

参与人数 1好评 +1 精币 +10 收起 理由
无名侠 + 1 + 10 写的不错,很久没遇到这种类型的帖子了

查看全部评分


结帖率:0% (0/1)
发表于 2015-5-25 02:23:24 | 显示全部楼层   四川省宜宾市
看看咋样呢  
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)
发表于 2015-5-22 21:20:46 | 显示全部楼层   湖南省衡阳市
抢个沙发拿个源码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表