永发信息网

C语言如何实现大数相加问题,各位高手多多指教!

答案:6  悬赏:0  手机版
解决时间 2021-04-12 14:07
C语言如何实现大数相加问题,各位高手多多指教!
最佳答案
可以的。

我曾经编写过100的阶乘的程序。在这个程序中,计算结果达到几千位,
这样大的数据很明显是任何数据类型都表示不了的。

不过,你可以把大数用数组来表示,比如1258746这个数,你用数组
a[]={0,0,0,...,0,1,2,5,8,7,4,6}来表示,然后对数组的每一位进行运算。

按照你题目的意思,还应该定义一个大数的加法的函数,
类似
Add(int a[], int b[], int m, int n);

数组a,b是两个表示大数的数组,m,n是数组的大小。注意,要从末尾对齐。

以上是我个人的一些意见,你可以搜索并学习一下我开头提到的那个程序,即关于大数的阶乘,网上应该有很多的资料,对你解题会有帮助的。

请问楼上,实际应用中用的到大数吗?
double类型可以表示21亿大的数据,几乎可以满足绝大多数的实际应用了,更何况是单片机。

这里讨论大数的运算是一种方法、一种思路。
全部回答
用ll就行了吧
变量的问题,弄成双精度的
任何类型都有溢出的时候,这个没法解决。。
非要这样算可以学汇编那样,定义几个变量,分别存储高中低位数字,自己计算进位。
存贮的时候把数字转成字符,计算的时候再把字符转成数字,我以前用java实现过(实现的是个位数的N次方,N>0),不过源代码丢了。
楼上的方法也太奢侈了:
”比如1258746这个数,你用数组 a[]={0,0,0,...,0,1,2,5,8,7,4,6}来表示,然后对数组的每一位进行运算”
这样做的后果是 你一个数字就占用了一个字节 要是单片机的话就挂了(当然,单片机一般不做这么大的数据运算)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为姓刘的人取两个名字一个男的一个女的有吗?
为什么只能喜欢一个人?
为什么有些女人要找比自己大的人男朋友
保山电视台打开一扇窗这首歌叫什么名字,在哪
单选题下列关于生物多样性的叙述不正确的是A.
手相解说要详细一点的
极品飞车几最好玩?
明白直播哪场NBA比赛
深圳市众泰汽车修配有限公司我想知道这个在什
enjoy sb.是什么意思?
请问我朋友是阴历1983年4月11日是阳历多少号
请QQ好友传递一个游戏人生的开通资格!急,谢
雅思小作文怎么写,雅思写作指导:如何写雅思
仙剑5什么时候出?
体温过高或过低对人体都有影响,主要是影响(
推荐资讯
空气刘海长长了怎么办,空气刘海怎么定型 每次
我的空间为什么成这样了?
求韩剧《原来是美男啊》中的所有歌曲!!
云南的旅游标语,跪求代表性强的云南旅游宣传
做人流化验血单,我的血型是ORH阴性是什么意
建材路在什么地方啊,我要过去处理事情
下列既是春秋五霸,又是战国七雄之一的诸侯国
单选题现在地球的山河大势基本形成于A.中生代
双辽市交通局怎么去啊,有知道地址的么
狮子座流星雨,大概在凌晨几点?
<<夜店>>朱辽出场听的歌叫什么名字?
龙珠超里最强的是谁,龙珠超黑暗人最后被谁打
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?