| r242 vs r243 | ||
|---|---|---|
| ... | ... | |
| 1502 | 1502 | }}} |
| 1503 | 1503 | au에서 tx를, ab에서 ty를 뺍니다. 만약 ty>ab일 경우 au에서 1을 가져와 (au에서 1을 빼고) ab에 1,000,000,000,000,000,000을 더한 다음 계산합니다. |
| 1504 | 1504 | {{{#!if ty>ab |
| 1505 | {{{#!if au | |
| 1505 | {{{#!if au-=1, ab+=+("1"+pd) | |
| 1506 | 1506 | }}}}}} |
| 1507 | 1507 | {{{#!if au-=tx, ab-=ty |
| 1508 | 1508 | }}}}}} |
| ... | ... | |
| 1516 | 1516 | au, ab를 문자열로 다시 바꿉니다. |
| 1517 | 1517 | {{{#!if au=au.toString(), ab=ab.toString() |
| 1518 | 1518 | }}} |
| 1519 | tn을 | |
| 1520 | {{{#!if tn="" | |
| 1521 | {{{#!if tn=au.substr(0,1), au=substr(1,17) | |
| 1519 | tn을 빈 문자열로 초기화합니다. 그리고 역할을 다 한 ps를 false로 초기화합니다. 그 다음 au가 여전히 18자리 숫자일 경우 au의 첫번째 자리를 분리해 내어 tn으로 정의합니다. 여기서 ps는 au의 길이에 따른 처리가 겹쳐지지 않게 만듭니다. | |
| 1520 | {{{#!if ps=false, tn="", au.length==18 | |
| 1521 | {{{#!if tn=au.substr(0,1), au=substr(1,17), ps=true | |
| 1522 | 1522 | }}}}}} |
| 1523 | au가 17자리 미만의 숫자가 되었다면 au의 왼쪽을 0으로 채워 17자리 숫자로 만듭니다. | |
| 1524 | {{{#!if !ps&&(au.length<17) | |
| 1525 | {{{#!if au=pd+au, au=au.substr(au.length-17,17) | |
| 1526 | }}}}}} | |
| 1527 | ab가 18자리 미만의 숫자가 되었다면 왼쪽을 0으로 채워 18자리 숫자로 만듭니다. | |
| 1528 | {{{#!if ab.length<18 | |
| 1529 | {{{#!if ab=pd+ab, ab=ab.substr(ab.length-18,18) | |
| 1530 | }}}}}} | |
| 1531 | au의 뒤로 ab의 처음 자리를 끌어옵니다. | |
| 1532 | {{{#!if au+=ab.substr(0,1) | |
| 1523 | 1533 | }}} |
| 1534 | ab의 나머지 17자리를 앞으로 당긴 다음 "0"을 더합니다. | |
| 1535 | {{{#!if ab=ab.substr(1,17)+"0" | |
| 1536 | }}} | |
| 1537 | ##i=1 part 1 | |
| 1538 | (변수 tn으로 만들 수 있는 여분의 1자리 +) 18자리 + 18자리 숫자를 18자리+18자리 숫자로 나누는 계산을 합니다. tn이 9가 될 경우 9로 시작하는 19자리 숫자를 long integer로 모두 표현할 수 없으므로 10**18 자리부터 먼저 계산합니다. 10**18의 1번째 숫자의 몫을 구한 다음 나머지를 18자리 숫자에 더하는 과정(part 1)을 거친 다음 그 18자리에서 몫을 구하는 과정(part 2)을 거칩니다. | |
| 1539 | {{{#!if | |
| 1540 | }}} | |
| 1541 | ##i=1 part 2 | |
| 1542 | }}} | |
| 1524 | 1543 | |
| 1544 | ||
| 1525 | 1545 | ##rs 매기기 |
| 1526 | 1546 | |
| 1527 | 1547 | ##ru 매기기 |
| ... | ... |