11.16 /2018
2天前的作业
本来之前也写过一个高精度算法的题,是让你输出某个数的n次方,因为结果会特别大,所以必须用数组存储,然后作竖式乘法。
有点饿,今天新生杯踢赢了材料哈哈
描述:
zzzzzz说明一下,感觉这种返回数组的函数,一般是在外面创建一个数组之后再传进来,参数是数组名和长度;
你在里面建新数组的话,应该可以用static修饰,或者是用malloc分配内存,
都会把数据变成静态从而不会因为函数返回而导致内存被释放;
可以看见,函数传入数组并没有给我们数组长度;
一般用数组作运算一般都是用字符数组,如果是那样的话,对每个元素都要 -'0' 把字符转成数字;
而short型数组便不需要怎么麻烦了,直接操作就行,不过每多一位数会多占用一个字节的内存;
显然无论是哪种,都需要传入数组长度,而不能通过sizeof来求其长度,
因为是通过指针传进来的,所以sizeof指针一般是4字节;
注意虽然说数组传进来是按引用传递,但是应该还是将数组地址赋值给指针形参,
只是对指针操作可以改变指向数组。
那么如何判断位数呢(长度),就需要我们在数组最后一位定义一个旗帜(比如-1),这样当我们遍历到-1时就知道到了末尾;
我的代码实现:
当然计算数组长度把赋值语句从循环中拿出来会更好,只赋值一次;
我的思路就是定义一个长度+1的数组,因为两个数相加,最多加一位,;
然后对位相加,若第一位是0,就整体前移
end