社区
数据结构与算法
帖子详情
设计一个任意长的整数进行加法运算的演示程序
idlefish
2003-12-17 12:07:24
利用双向循环链表实现长整数的存储,每个结点含一个整型变量。任何整型变量的范围是-(2的十五次幂-1)--(2的十五次幂-1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号搁开。
...全文
493
12
打赏
收藏
设计一个任意长的整数进行加法运算的演示程序
利用双向循环链表实现长整数的存储,每个结点含一个整型变量。任何整型变量的范围是-(2的十五次幂-1)--(2的十五次幂-1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号搁开。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loewe
2004-01-03
打赏
举报
回复
这个问题和2003ICPC Beijing的Problem H:Powerful Calculator差不多嘛,前段时间我写过一个C的版本的,可是机器格过了什么都没了,如果你想要的话,我老师写过一个PASCAL版本的,我可以帮你去拿来看看,留个Email给我吧
我们做的都是用string来存储读取的长整数的,要转换成LinkList不难的,关键是你可以参考一下我们的方法,如果有帮助的话最好了
12s
2004-01-02
打赏
举报
回复
程序员追求什么? 解决具体问题?
我想是的 那么为什么还要转弯呢?
不过楼主的问题 我不能解决 Sorry!
idlefish
2003-12-30
打赏
举报
回复
这几天一直忙考试还没有做这个程序,我想请教一下关于进位问题,还有双向循环链表怎么实现啊(不好意思)
idlefish
2003-12-30
打赏
举报
回复
这几天一直忙考试,也没有做这个程序,不过你有没有想过关于进位问题?还有我想请教一下双向循环怎么实现啊?(不好意思)
Linevan
2003-12-22
打赏
举报
回复
要每个结点存四位的话,其实很好处理啊!
你先把两个要加的长整数对应结点先加起来!
然后对所得数进行位数处理!
从最小位到最高位,要是某一位的数,比如是a.data
要是a.data>10000(要是四位的话,)
则
{
a.next.data+=a.data/10000;
a.data=a.data%10000;
}
这样就可以做到在一个结点上保存4位数了!
既节约了空间内存,又能充分利用结点空间!
个人认为是个好方法!
至于源代码,相信楼主能自己写了,
要是还有问题,请拿出来大家一起讨论!
loewe
2003-12-22
打赏
举报
回复
要考虑正数和负数吗?
idlefish
2003-12-21
打赏
举报
回复
试编写递归算法,输出广义表中所有原子项及其所在层次。
NowCan
2003-12-17
打赏
举报
回复
这个要用链表来作?真是无聊。
用个数组简单的很,缺点就是不能处理任意大的数,但链表就行,也只是理论上的,实际应用中受内存限制。
所以,如果是你要作个大数运算的东西,最好根据具体情况来看,要通用,速度就慢,你想好了。
seefront1
2003-12-17
打赏
举报
回复
假如你们课程设计题目里有关于用 Dijkstra算法设计矩阵任意两点间的最短距离的题目的话,那么很有可能你跟我一个学校,同一年级。这样的话我会更加B4你!
seefront1
2003-12-17
打赏
举报
回复
你是哪个学校的啊?这很明显是期末课程设计,靠,想让别人做?去死吧!
Linevan
2003-12-17
打赏
举报
回复
就象newmeteor(圆缘)所说,不过如果要求是“双向循环链表”的话,可以把数组改成链表
这样就真正的是可以对任意长的整数进行加法运算,因为如果数多了位数就可以临时申请空间,不过要是位数很大的话,链表可能会很长,所以有个小小的建议:
每个结点不要只保留一位数,可以是两位,或更多,
也就是说要是1023324234242的话
可以这样保存:242-234-324-23-1(3位)
运算等等不变!
不过这样的话你输出时就要检验一下,要是不足3位,例如上面的23,输出就要是023。
希望对你的程序能有用!
newmeteor
2003-12-17
打赏
举报
回复
如果数字本身已经超出了计算机的表示范围的话,你可以用三个数组来表示,数组的长度有你决定,(如果学过c++的话可以用new动态创建数组,如果没有学过的话可以用#define maxlen 999(999表示你所用到的参加运算的数字的有多少位)定义任意你想要的位数)然后用两个数组存放你的两个大数,还有一个数组保存结果。数组的每一位用来存放你的大数的每一位(如:个位,十位,百位....),然后两个数组相加,
for (i=0;i<manlen;i++)//从0----maxlen依次保存大数的个,十,百....
c[i]=0;
for(i=0;i<maxlen;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>=0)
{c[i]=c[i]-10;c[i+1]=1;}
for (i=maxlen;i>=0:i--;)
print("%f",c[i]);
希望这个短小的核心算法对你有所启示,我就满足了!相信其他的部分你可以自己完善了!
用链表实现
任意
长
整数
的加减法.txt
任意
长
的
整数
加减法运算
设计
算法,实现
一个
任意
长
的
整数
进行
加法、减法运算的
演示
程序
。例如:1234,5123,4512,3451,2345与-1111,1111,1111,1111,1111的加法结果为:0123,4012,3401,2340,1234。基本要求如下: (1) 利用链表实现
长
整数
的存储,每个节点含
一个
整型变量; (2) 整型变量的范围:-(2^15 -1)~(2^15 -1); (3) 输入与输出形式每四位一组,组间用逗号分隔开。如:1986,8213,1935,2736,3299; (4) 界面友好,每步给出适当的操作提示,并且系统具有一定的容错能力。 至少给出下面的测试数据: (1)0; 0 (2)-2345,6789; -7654,3211 (3)-9999,9999; 1,0000,0000,0000 (4)1,0001,0001; -1,0001,0001 (5)1,0001,0001; -1,0001,0000 (6)-9999,9999,9999; -9999,9999,9999 (7)1,0000,9999,9999; 1
C/C++:
任意
长
的
整数
加法.rar(含完整注释)
问题描述:
设计
一个
程序
实现两个
任意
长
的
整数
的求和运算。 基本要求:利用双向循环链表,
设计
一个
实现
任意
长
的
整数
进行
加法运算
的
演示
程序
。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000.
双向链表
任意
长
整数
加法.c
任意
长
的
整数
加法 问题描述:
设计
一个
程序
实现两个
任意
长
的
整数
的求和运算。 基本要求:利用双向循环链表,
设计
一个
实现
任意
长
的
整数
进行
加法运算
的
演示
程序
。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。
任意
长
的
整数
加法.cpp
长
整数
加法的总体目标:在VC6.0的开发环境下,利用所学C语言和数据结构的相关知识,开发
一个
可实现
任意
长
的
整数
加法的
演示
程序
,并具有良好的人机交互界面 基本功能如下: (1)
设计
一个
实现
任意
长
的
整数
加法运算
演示
程序
。 (2)利用双向链表实现
长
整数
的存储,每个结点含
一个
整型变量。 (3)输入输出形式,每四位一组,用逗号隔开。
长
整数
的四则运算
长
整数
的四则运算:
设计
一个
实现
任意
长
的
整数
进行
加法运算
的
演示
程序
。*基本要求:利用双向链表实现
长
整数
的存储,每个结点含
一个
整形变量。任何整形变量的范围是。输入和输出形式:按中国对于
长
整数
的表示习惯,每四位一组,组间用逗号隔开。
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章