r238 vs r239
......
14541454
##i=0
14551455
{{{#!if br=false
14561456
}}}다시 정렬된 bu, bb의 값은 바뀌지 않습니다. bu, bb로 나눈 몫만큼 au, ab에서 감소시킨 다음 au와 ab를 다시 정렬시키며, au와 ab가 모두 0이 되면 더 이상 계산하지 않도록 br를 true로 반환합니다.
1457
au와 ab의 값을 가져와 tu와 tv로 먼저 복제합니다.
1458
{{{#!if tu=au, tv=ab
1459
}}}}}}
1460
그 다음 계산을 편하게 할 수 있도록 텍스트값으로 된 au, ab, bu, bb를 정수값으로 변환합니다.
1461
{{{#!if au=+au, ab=+bb, bu=+bu, bb=+bb
1462
}}}
14571463
14581464
au의 값이 bu보다 작거나, au==bu이더라도 ab<bb이면 해당하는 자릿수의 몫이 0이라는 의미리므로 다음 자릿수로 넘깁니다. 이 과정에서 변수 ts(logical)를 가져옵니다.
14591465
{{{#if ts=((au<bu)||((au==bu)&&(ab<bb))), ts
......
14611467
}}}}}}
14621468
!ts이러면 ① au>bu이거나, ② au==bu이고 ab>=bb인 경우입니다. !ts를 if 조건문으로 두고 ①의 경우, ②의 경우로 나눠 봅니다.
14631469
{{{#!if !ts
1464
au ab의 값져와 tu tv복제합니다.
1465
{{{#!if tu=au, tv=ab
1466
}}}}}}
1470
au bu로 나눈 몫을 tw로 정합니다. 정수를 정수로 나누면 몫만 계산되며, 100,000,000,000,000,000 이상 999,999,999 999,999,999 이하의 한 정수를 100,000,000,000,000,000 이상의 다른 한 정수로 나눈 몫이므로 tw의 최소 0 최대 9됩니다.
1471
{{{#!if tw=au/bu
1472
}}}
1473
bu, bb를 각각 tw만큼 곱한 값을 tx, ty정의합니다.
1474
{{{#!if tx=bu*tw, ty=bb*tw
1475
}}}
1476
이 때 ty가 19자리가 되면 넘친 첫번째 자리를 tx의 일의 자리로 더합니다. tx는 19자리 숫자가 되어도 문제가 없습니다.
1477
이렇게 하면 tw*bu<=au가 됩니다. (bu가 au보다 크면 tw는 0이 됩니다.)
14671478
14681479
14691480
......