【正文】
gth(a)1)and(a[1]=39。039。) do delete(a,1,1)。while (length(b)1)and(b[1]=39。039。) do delete(b,1,1)。{初始化積}p:=length(a)+length(b)。for i:=1 to p dotmp[i]:=0。{乘法:每兩位相乘}for i:=1 to length(a) dofor j:=1 to length(b) dobegink:=pij。 {結(jié)果在第幾位}inc(tmp[pk] ,v[a[i]]*v[b[j]] mod 10)。 {加到這一位上}inc(tmp[pk1],v[a[i]]*v[b[j]] div 10)。end。{整理結(jié)果}g:=0。c:=39。39。for i:=p downto 1 dobeginc:=ch[(tmp[i]+g) mod 10]+c。g:=(tmp[i]+g) div 10。end。{刪除多余的零}while (length(c)1)and(c[1]=39。039。) do delete(c,1,1)。end。下面是一篇英文文章(PDF) Big numbers6 進(jìn)位制大家應(yīng)該比較熟吧。運(yùn)算可以按高精度數(shù)處理,而進(jìn)制轉(zhuǎn)換嘛,也不難。10進(jìn)制換成N進(jìn)制:readln(p)。 {p0時(shí)}i:=0。while p0 dobegininc(i)。a[i]:=p mod n。p:=p div n。end。for j:=i downto 1 dowrite(a[j])。N進(jìn)制轉(zhuǎn)化成10進(jìn)制:p:=0。for i:=1 to len dop:=p*n+a[i]。這次復(fù)賽(其實(shí)是N年以前的ACM題目)考了負(fù)數(shù)進(jìn)位制,其實(shí)還有復(fù)數(shù)進(jìn)位制和fibinacci進(jìn)制的!他們都是基于定義的。利用類似的(廣義)除法和取模運(yùn)算,最后都能夠得出正確的進(jìn)制表示。說到應(yīng)用,主要是數(shù)學(xué)題,例如《tower of hanoi》,還有壓縮存儲(chǔ)。例如《拯救大兵瑞恩》和《補(bǔ)丁vs錯(cuò)誤》