r242 vs r243
......
15021502
}}}
15031503
au에서 tx를, ab에서 ty를 뺍니다. 만약 ty>ab일 경우 au에서 1을 가져와 (au에서 1을 빼고) ab에 1,000,000,000,000,000,000을 더한 다음 계산합니다.
15041504
{{{#!if ty>ab
1505
{{{#!if au=-1, ab+=+("1"+pd)
1505
{{{#!if au-=1, ab+=+("1"+pd)
15061506
}}}}}}
15071507
{{{#!if au-=tx, ab-=ty
15081508
}}}}}}
......
15161516
au, ab를 문자열로 다시 바꿉니다.
15171517
{{{#!if au=au.toString(), ab=ab.toString()
15181518
}}}
1519
tn을 (초기화한 다음) au가 여전히 18자리 숫자일 경우 au의 첫번째 자리를 tn으로 정의합니다.
1520
{{{#!if tn="". au.length==18
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
15221522
}}}}}}
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)
15231533
}}}
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
}}}
15241543
1544
15251545
##rs 매기기
15261546
15271547
##ru 매기기
......