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]

 

posted @ 2017-11-10 13:53  Frank的成长之路  阅读(234)  评论(0编辑  收藏  举报