CRJ巨佬gjd算法伪代码
为了方便记忆,因此给出为代码
定义
reset(N)
flag=1,len = 0
赋值(LL) :
while a不为零
N[i] = a[i]个位
len = i
赋值(string a):
len = a.len
for 0 -> len
N[i] = a[len-1-i] - '0'
加法:
len = maxlen(a,b) + 1
tp = 0;
for 0 -> N
N[i] = a[i]+b[i] + tp
tp = N[i] / 10
N[i] %= 10
去前导零
减法:
if(a < b) 交换,输出负值
len = maxlen(a, b)
for 0 -> N
N[i] = a[i] - b[i]
if N[i] < 0 then N[i + 1]--, N[i] + 10;
去前导零
乘法:
len = lena+lenb
for i = 1 -> lena
for j = 1 -> lenb
N[i + j] = Na[i] * Nb[j]
N[i + j + 1] = N[i + j] /10
N[i + j] %= 10
去前导零
小于比较:
if len 不相等 then len小的
else for len - 1 -> 0
if a[i] < b[i] then a小
if a[i] > b[i] then b小
输出:
if 负数 then 输出-
else for len-1 -> 0 out N[i]