| r353 vs r354 | ||
|---|---|---|
| ... | ... | |
| 1543 | 1543 | au, ab를 문자열로 다시 바꿉니다. |
| 1544 | 1544 | {{{#!if au=au.toString(), ab=ab.toString() |
| 1545 | 1545 | }}} |
| 1546 | ||
| 1547 | {{{#!if ps= | |
| 1546 | au가 여전히 18자리 숫자일 경우 au의 첫번째 자리를 분리해 내어 tn으로 정의하고 나머지 17자리를 au로 둡니다. 그렇지 않을 경우 (au가 17자리 미만의 숫자가 되었다면) tn은 빈 문자열으로 두고 au의 왼쪽을 0(pd)으로 채운 다음 (적어도 19자리가 되는 문자열을) 뒤에서 17번째 자리부터 가지고 와 au로 만듭니다. | |
| 1547 | {{{#!if ps=(au.length==18), tn=ps?au.substr(0,1):"", au=ps?au.substr(1):(pd+au).substr(-17) | |
| 1548 | 1548 | }}} |
| 1549 | 1549 | ab가 18자리 미만의 숫자가 되었다면 왼쪽을 0으로 채워 18자리 숫자로 만듭니다. |
| 1550 | 1550 | {{{#!if ab=(ab.length<18)?(pd+ab).substr(-18):ab |
| ... | ... | |
| 1553 | 1553 | {{{#!if au+=ab.substr(0,1) |
| 1554 | 1554 | }}} |
| 1555 | 1555 | ab의 나머지 17자리를 앞으로 당긴 다음 "0"을 더합니다. |
| 1556 | {{{#!if ab=ab.substr(1 | |
| 1556 | {{{#!if ab=ab.substr(1)+"0" | |
| 1557 | 1557 | }}} |
| 1558 | 1558 | 여기까지가 자릿수를 한 칸씩 옮기는 과정입니다. |
| 1559 | 1559 | }}} |
| ... | ... | |
| 1590 | 1590 | br(0으로 나누어떨어짐) 이 걸려있으면 실행하지 않습니다. 그러므로 전체적으로 조건을 !br로 둔 다음 계산을 진행합니다. |
| 1591 | 1591 | {{{#!if !br |
| 1592 | 1592 | tw, tx, ty를 정의하고 처리하는 과정은 앞자리에서 몫을 찾는 과정과 동일합니다. 앞의 part 1에서 이미 au, ab를 정수로 만들었으므로 여기에 au, ab를 정수로 만드는 처리를 할 필요가 없습니다. |
| 1593 | {{{#!if tw=au/bu, tx=bu*tw, ty=bb*tw | |
| 1594 | ||
| 1595 | ||
| 1596 | }}} | |
| 1593 | {{{#!if tw=au/bu, tx=bu*tw, ty=bb*tw, ty=ty.toString(), ps=(ty.length==19), tx=ps?tx+(+ty.substr(0,1)):tx, ty=ps?ty=ty.substr(1):ty | |
| 1594 | }}} | |
| 1597 | 1595 | ty를 정수로 바꾸는 과정을 아래 if 조건문으로 병합합니다. |
| 1598 | 1596 | {{{#!if ty=+ty, (tx>au)||((tx==au)&&(ty>ab)) |
| 1599 | {{{#!if tw- | |
| 1600 | ||
| 1601 | ||
| 1602 | ||
| 1597 | {{{#!if tw=(tw==0)?0:tw-1, tx=bu*tw, ty=bb*tw, ty=ty.toString(), ps=(ty.length==19), tx=ps?tx+(+ty.substr(0,1)):tx, ty=ps?ty=ty.substr(1):ty, ty=+ty | |
| 1603 | 1598 | }}}}}} |
| 1604 | 1599 | {{{#!if ty>ab |
| 1605 | 1600 | {{{#!if au-=1, ab+=+("1"+pd) |
| ... | ... | |
| 1618 | 1613 | {{{#!if au=au.toString(), ab=ab.toString() |
| 1619 | 1614 | }}} |
| 1620 | 1615 | ps를 au 자릿수가 18이 되었을 때 true가 되는 논리값으로 정의합니다. |
| 1621 | {{{#!if | |
| 1622 | ||
| 1623 | ||
| 1624 | ||
| 1625 | ||
| 1626 | ||
| 1627 | ||
| 1628 | ||
| 1629 | ||
| 1630 | ||
| 1616 | {{{#!if ps=(au.length==18), tn=ps?au.substr(0,1):"", au=ps?au.substr(1):(pd+au).substr(-17) | |
| 1631 | 1617 | }}} |
| 1618 | {{{#!if ab=(ab.length<18)?(pd+ab).substr(-18):ab | |
| 1632 | 1619 | }}} |
| 1620 | {{{#!if au+=ab.substr(0,1), ab=ab.substr(1)+"0" | |
| 1621 | }}}}}} | |
| 1633 | 1622 | ##i=2 |
| 1634 | 1623 | 이후부터 과정은 동일합니다. 많아야 소수점 위 36자리, 소수점 아래 36자리 모두를 쓰면 72개이므로 총 72회(for i=0 to i=71)를 진행합니다. |
| 1635 | 1624 | {{{#!if au=+au, ab=+ab, tz=0, !br&&(tn!="") |
| ... | ... |