大数相加

 

问题描述:实现A+B=C   其中A、B位数超过100位

算法思想:大数使用字符串存储,每一个单元存储操作数的每一位,之后执行位相加。

基本思路:字符串反转、字符变数字、位运算、反序输出

C语言代码:

[cpp

注意事项:

1、要注意sizeof的用法

      char sum[100], sizeof(sum) =100 (表示整个字符串的大小)

      char* sum 或 char sum[] (为函数参数), sizeof(sum)=4  (表示存储一个指针的单元大小)

      主要的区别:sum在定义的时候意义不同

2、memset(sum,0,Max*sizeof(char)):

      作用:一般是用于初始化或清空一个内存块,等价于循环

     使用范围:百度说:一般用memset对数组赋0或-1,赋其他的值就要用循环来实现。

3、在这里,对字符串进行初始化0操作很重要,它会影响到位操作和输出,要引起重视!

4、100位相加,和最大为101位,故申请最大为101

你可能感兴趣的:(大数相加)