c语言 大整数减法

Python025

c语言 大整数减法,第1张

郁闷,我用纸写了一下,写了3面纸,现在时间不够了,我不能把代码抄上来了。唉……够悲剧。

方法可以告诉你:

分别定义2个字符串数数和2个整数数,然后把字符串数组转换成整数数组,这样的转换并不麻烦,你可以声明一个中间字符串变量(这个字符串长度为1,因为只用于存放一个1个字节的字符),然后分别把这个只含有一个字符的字符串转化位整数并存入整数2维数组中,用atoi()函数把字符串转换成整数。

假设转换后的被减数组成的数组为a1[10][100],减数组成的数组为a2[10][100],然后模拟竖式运算,就是说如果a1[i][j]<a2[k][l]则a1[i][j]要加10再进行计算,当然a1[i][j-1]就要减1,因为被借了1。你可以把数出来的差放入新的整数数组中,如果a1的位数大于a2的位数,那只要把多出的部分直接放入新数组中即可。

还是这样说比较好,我把代码写出来你更难看懂。。。

设计一个比较长的数组来记录各位数值,计算就行。

示例:

const int MAXL = 512

//_num表示各位数值,_len表示数值长度,_num[i]表示该位是10^i的位置

struct HugeNumber{

char _num[MAXL]

int _len

}

//实现这个函数,就有减法了,具体就参照小学数学的减法写个借位减法就行了

void sub_huge(const HugeNumber &a, const HugeNumber &b, HugeNumber &result)