[Algorithm]高精度加法

11.16 /2018

2天前的作业
本来之前也写过一个高精度算法的题,是让你输出某个数的n次方,因为结果会特别大,所以必须用数组存储,然后作竖式乘法。
有点饿,今天新生杯踢赢了材料哈哈

描述:
在这里插入图片描述

zzzzzz说明一下,感觉这种返回数组的函数,一般是在外面创建一个数组之后再传进来,参数是数组名和长度;
你在里面建新数组的话,应该可以用static修饰,或者是用malloc分配内存,
都会把数据变成静态从而不会因为函数返回而导致内存被释放;

在这里插入图片描述

可以看见,函数传入数组并没有给我们数组长度;
一般用数组作运算一般都是用字符数组,如果是那样的话,对每个元素都要  -'0'  把字符转成数字;
而short型数组便不需要怎么麻烦了,直接操作就行,不过每多一位数会多占用一个字节的内存;

显然无论是哪种,都需要传入数组长度,而不能通过sizeof来求其长度,
因为是通过指针传进来的,所以sizeof指针一般是4字节;

注意虽然说数组传进来是按引用传递,但是应该还是将数组地址赋值给指针形参,
只是对指针操作可以改变指向数组。

那么如何判断位数呢(长度),就需要我们在数组最后一位定义一个旗帜(比如-1),这样当我们遍历到-1时就知道到了末尾;

我的代码实现:
在这里插入图片描述
当然计算数组长度把赋值语句从循环中拿出来会更好,只赋值一次;

我的思路就是定义一个长度+1的数组,因为两个数相加,最多加一位,;
然后对位相加,若第一位是0,就整体前移

end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值