| r238 vs r239 | ||
|---|---|---|
| ... | ... | |
| 1454 | 1454 | ##i=0 |
| 1455 | 1455 | {{{#!if br=false |
| 1456 | 1456 | }}}다시 정렬된 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 | }}} | |
| 1457 | 1463 | |
| 1458 | 1464 | au의 값이 bu보다 작거나, au==bu이더라도 ab<bb이면 해당하는 자릿수의 몫이 0이라는 의미리므로 다음 자릿수로 넘깁니다. 이 과정에서 변수 ts(logical)를 가져옵니다. |
| 1459 | 1465 | {{{#if ts=((au<bu)||((au==bu)&&(ab<bb))), ts |
| ... | ... | |
| 1461 | 1467 | }}}}}} |
| 1462 | 1468 | !ts이러면 ① au>bu이거나, ② au==bu이고 ab>=bb인 경우입니다. !ts를 if 조건문으로 두고 ①의 경우, ②의 경우로 나눠 봅니다. |
| 1463 | 1469 | {{{#!if !ts |
| 1464 | au | |
| 1465 | {{{#!if t | |
| 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이 됩니다.) | |
| 1467 | 1478 | |
| 1468 | 1479 | |
| 1469 | 1480 | |
| ... | ... |